当成员属性的名称存储在另一个变量中时,访问类的成员属性

时间:2018-01-31 11:54:33

标签: python syntax access instance-variables

当成员属性名称存储在另一个变量中时,我们在访问类的成员属性时遇到问题。例如:我们有一个类A,其成员属性为var1,var2,var2和upto var 100.从另一个类,我们尝试访问var67,我们要访问的属性名称(即var67)被存储在另一个变量x中,作为字符串(“var67”)(此x由不同的函数生成)。所以从x的值我们怎么能访问var67属性,因为我们不能做A.x。除了在A类中构建方法以在这种情况下访问变量之外,请引导我们任何简短的方法。谢谢!

MyClass: 
variable = "blah" 
def function(self): 
    print("This is a message inside the class.") 
myobjectx = MyClass() 
x="variable" 
myobjectx.(getattr(MyClass(), x)) 

最后一行会抛出语法错误

1 个答案:

答案 0 :(得分:0)

在python中你有getattr内置函数:

class A:
    def __init__(self):
        self.a67 = 10
x = "a67"
print(getattr(A(), x))

这里有live example