>>> class Foo:
... 'it is a example'
... print 'i am here'
...
i am here
>>> Foo.__name__
'Foo'
>>> Foo().__name__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: Foo instance has no attribute '__name__'
>>> Foo.__doc__
'it is a example'
>>> Foo().__doc__
'it is a example'
>>> Foo.__dict__
{'__module__': '__main__', '__doc__': 'it is a example'}
>>> Foo().__dict__
{}
>>> Foo.__module__
'__main__'
>>> Foo().__module__
'__main__'
>>> myname=Foo()
>>> myname.__name__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: Foo instance has no attribute `__name__`
Qual è la ragione per cui le istanze non hanno attributo __name__
?
forse è ok che il __name__
di istanza-myname è myname
.
ti dispiacerebbe dirmi più logiche, non le regole grammaticali irragionevoli?Perché le istanze Python non hanno attributo __name__?
Cosa ti fa pensare che ci sia un attributo '__name__' nelle istanze? La [documentazione pertinente] (http://docs.python.org/2/reference/datamodel.html) dice che esiste per le classi (e altre cose), ma non ne vedo alcuna menzione per le istanze. – Celada
Da [docs] (http://docs.python.org/2/library/stdtypes.html?highlight=__name__#class.__name__): '__name__' è il nome di una" classe o tipo ", non un istanza di una classe o di un tipo. Perché le istanze dovrebbero avere '__name__'s? –
Intendevi 'Foo() .__ classe __.__ nome__'? –