Добавление атрибутов к объектам Python

It's a thing that bugged me for a while. Why can't I do:

>>> a = ""
>>> a.foo = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'foo'

...while I can do the following?

>>> class Bar():
...     pass
... 
>>> a = Bar()
>>> a.foo = 10 #ok!

What's the rule here? Could you please point me to some description?

35
задан ThiefMaster 17 November 2013 в 13:30
поделиться