Because your atribute is a class attribute:
class C:
ca = 123
print C.ca # 123
c1 = C()
print c1.ca # 123
c1.ca = 140
print c1.ca # 140
print C.ca # 123
c2 = C()
print c2.ca # 123
C.ca = 141
print C.ca # 141
print c1.ca # 140
print c2.ca # 141
Basically, when an instance does not have an attribute, it looks them up
in the class, which might recurse into base classes.
Furthermore, objects & classes 101 material:
class C:
def method(self):
print self
c = C()
print c.method # bound method to c
print C.method # unbound method, checks that first argument is a C
print C.__dict__["method"]
# function, does NOT check first argument.
So basically, the whole self argument handling is magic that happpens
during attribute lookup.
Andreas
Am Freitag, den 03.11.2006, 14:27 +0100 schrieb euoar:
> I think I don't understand the OOP in python, could anyone explain why
> this code works?
>
> class example:
> atribute = "hello world"
>
> print example.atribute
>
> Why you don't have to make an object of the class to access to the
> atribute?
>
> ( class example:
> atribute = "hello world"
>
> obj = example()
> print obj.atribute
>
>
> Thanks in advance.
>
>
> ______________________________________________
> LLama Gratis a cualquier PC del Mundo.
> Llamadas a fijos y móviles desde 1 céntimo por minuto.
> http://es.voice.yahoo.com
> _______________________________________________
> Tutor maillist - [email protected]
> http://mail.python.org/mailman/listinfo/tutor
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil
_______________________________________________ Tutor maillist - [email protected] http://mail.python.org/mailman/listinfo/tutor
