Tôi muốn biết lý do tại sao người ta có thể tạo thuộc tính mới ("mới" có nghĩa là "không được định nghĩa trước đó trong nội dung lớp") cho một thể hiện của loại tùy chỉnh, nhưng không thể thực hiện tương tự cho một được tích hợp sẵn, chẳng hạn như số object
.Tại sao các loại tùy chỉnh chấp nhận các thuộc tính ad-hoc trong Python (và các trình tạo sẵn không)?
Một mã ví dụ:
>>> class SomeClass(object):
... pass
...
>>> sc = SomeClass()
>>> sc.name = "AAA"
>>> sc.name
'AAA'
>>> obj = object()
>>> obj.name = "BBB"
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'object' object has no attribute 'name'