如何通过对应的属性名字符串来访问对象属性

2024-04-25 10:00:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如何设置/获取由x给定的t的属性值?

class Test:
   def __init__(self):
       self.attr1 = 1
       self.attr2 = 2

t = Test()
x = "attr1"

Tags: testself属性initdefclassattr1attr2
2条回答

有称为^{}^{}的内置函数

getattr(object, attrname)
setattr(object, attrname, value)

在这种情况下

x = getattr(t, 'attr1')
setattr(t, 'attr1', 21)

注意:这个答案已经过时了。它适用于使用new模块的Python 2,该模块是deprecated in 2008

有python内置的setattr和getattr函数。它可以用来设置和获取类的属性。

一个简单的例子:

>>> from new import  classobj

>>> obj = classobj('Test', (object,), {'attr1': int, 'attr2': int}) # Just created a class

>>> setattr(obj, 'attr1', 10)

>>> setattr(obj, 'attr2', 20)

>>> getattr(obj, 'attr1')
10

>>> getattr(obj, 'attr2')
20

相关问题 更多 >