thể trùng lặp:
Why can't I directly add attributes to any python object?
Why can't you add attributes to object in python?điều gì làm cho đối tượng được người dùng xác định không ném AttributeError bằng Python?
Các mã sau đây không ném AttributeError
class MyClass():
def __init__(self):
self.a = 'A'
self.b = 'B'
my_obj = MyClass()
my_obj.c = 'C'
Đó trái ngược với
>>> {}.a = 'A'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'a'
Điều gì tạo ra sự khác biệt như vậy? Có phải về dict là lớp được xây dựng trong khi MyClass được người dùng xác định không?
Câu hỏi thực sự là nhiều hơn * điều gì làm cho một số đối tượng ném thuộc tính khi thiết lập * - Python là động, vì vậy bạn có thể làm điều này một cách tự nhiên, không phải cách khác. –
có thể trùng lặp: 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
Liên kết đầu tiên được đưa ra bởi mgilson ở trên có một câu trả lời tốt. –