tengo este código:¿Por qué no puedo agregar atributos directamente a cualquier objeto de Python?
>>> class G:
... def __init__(self):
... self.x = 20
...
>>> gg = G()
>>> gg.x
20
>>> gg.y = 2000
Y este código:
>>> from datetime import datetime
>>> my_obj = datetime.now()
>>> my_obj.interesting = 1
*** AttributeError: 'datetime.datetime' object has no attribute 'interesting'
Desde mi conocimiento de Python, yo diría que las anulaciones datetime
setattr
/getattr
, pero no estoy seguro. ¿Podrías arrojar algo de luz aquí?
EDIT: No estoy interesado específicamente en datetime
. Me preguntaba sobre los objetos en general.
"Me preguntaba sobre los objetos en general". ¿Qué? Muestra un ejemplo general de una clase general que generalmente tiene atributos agregados. ¿Qué significa tu edición? –
Significa que tenía curiosidad por todas las clases, no solo por la fecha. Publiqué esta pregunta porque vi que para algunas clases podía agregar atributos, mientras que para otras no pude. – Geo
@Geo: algunas clases son diferentes, no hay una regla "general". Como dice su pregunta, algunas clases pueden y algunas clases no. Como su pregunta muestra que no hay una regla general, ¿qué está preguntando? –