Mögliche Duplizieren:
Why can't I directly add attributes to any python object?
Why can't you add attributes to object in python?was bewirkt, dass benutzerdefinierte Objekte AttributError in Python nicht auslösen?
Der folgende Code nicht werfen Attribute
class MyClass():
def __init__(self):
self.a = 'A'
self.b = 'B'
my_obj = MyClass()
my_obj.c = 'C'
, die mit
Kontrast>>> {}.a = 'A'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'a'
Was macht den Unterschied? Ist dict eine eingebaute Klasse, während MyClass benutzerdefiniert ist?
Die eigentliche Frage ist mehr * was bewirkt, dass einige Objekte AttributeErrors werfen, wenn sie * setzen - Python ist dynamisch, also ist es natürlich, dass Sie dies tun können, nicht umgekehrt. –
möglich duplizieren: http://stackoverflow.com/questions/1285269/why-cant-you-add-attributes-to-object-in-python http://stackoverflow.com/questions/1072649/python-language-question -attributes-of-object-vs-function – mgilson
Der erste von mgilson oben angegebene Link hat eine gute Antwort. –