重複の可能性:
Pythonオブジェクトに属性を直接追加できないのはなぜですか?
Pythonでオブジェクトに属性を追加できないのはなぜですか?
次のコードはAttributeErrorをスローしません
class MyClass():
def __init__(self):
self.a = 'A'
self.b = 'B'
my_obj = MyClass()
my_obj.c = 'C'
それはとは対照的です
>>> {}.a = 'A'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'a'
何がそのような違いを生むのでしょうか?MyClassがユーザー定義であるのに対し、dictは組み込みクラスであるということですか?