Mi piacerebbe sapere il motivo per cui si è in grado di creare un nuovo attributo ("nuovo" significa "non precedentemente definita nel corpo di classe") per un'istanza di un tipo personalizzato, ma non è in grado di fare lo stesso per un tipo built-in, come object
stesso.Perché i tipi personalizzati accettano attributi ad-hoc in Python (e i built-in non lo fanno)?
Un esempio di codice:
>>> 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'