जवाबों:
setattr(x, attr, 'magic')
इस पर मदद के लिए:
>>> help(setattr)
Help on built-in function setattr in module __builtin__:
setattr(...)
setattr(object, name, value)
Set a named attribute on an object; setattr(x, 'y', v) is equivalent to
``x.y = v''.
संपादित करें: हालांकि, आपको ध्यान देना चाहिए (जैसा कि एक टिप्पणी में बताया गया है) जो आप "शुद्ध" उदाहरण के लिए नहीं कर सकते object
। लेकिन यह संभावना है कि आपके पास ऑब्जेक्ट का एक सरल उपवर्ग है जहां यह ठीक काम करेगा। मैं ओपी से दृढ़तापूर्वक आग्रह करूंगा कि इस तरह की वस्तु का उदाहरण कभी न दें।
dirty
उपयोगकर्ता इनपुट में विशेषता जोड़ने के लिए ...
__slots__
विशेषता के साथ अपनी कक्षा के साथ ऐसा कर सकते हैं ।
int
। क्या आप व्यख्या कर सकते हैं? (यह सब पर है __builtin__
?
आमतौर पर, हम इसके लिए कक्षाएं परिभाषित करते हैं।
class XClass( object ):
def __init__( self ):
self.myAttr= None
x= XClass()
x.myAttr= 'magic'
x.myAttr
हालाँकि, आप कर सकते हैं, एक हद तक, में setattr
और getattr
निर्मित कार्यों के साथ ऐसा करते हैं। हालाँकि, वे object
सीधे उदाहरणों पर काम नहीं करते हैं।
>>> a= object()
>>> setattr( a, 'hi', 'mom' )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'object' object has no attribute 'hi'
हालाँकि, वे सभी प्रकार के साधारण वर्गों पर काम करते हैं।
class YClass( object ):
pass
y= YClass()
setattr( y, 'myAttr', 'magic' )
y.myAttr