25

代码是这样的:

class Test:
    a = 1
    def __init__(self):
        self.b=2

当我创建一个实例时Test,我可以像这样访问它的实例变量b(使用字符串“b”):

test = Test()
a_string = "b"
print test.__dict__[a_string]

但它不适用于aself.__dict__包含名为 的键aa那么如果我只有一个字符串,我该如何访问a

谢谢!

4

5 回答 5

47

要获取变量,您可以执行以下操作:

getattr(test, a_string)
于 2012-11-09T06:22:13.090 回答
12

以这种方式使用getattr来做你想做的事:

test = Test()
a_string = "b"
print getattr(test, a_string)
于 2012-11-09T06:22:22.593 回答
7

尝试这个:

class Test:    
    a = 1    
    def __init__(self):  
         self.b=2   

test = Test()      
a_string = "b"   
print test.__dict__[a_string]   
print test.__class__.__dict__["a"]
于 2012-11-09T06:31:24.870 回答
4

您可以使用:

getattr(Test, a_string, default_value)

使用第三个参数返回一些default_value以防万一在课堂a_string上找不到。Test

于 2015-02-19T19:58:01.153 回答
1

Since the variable is a class variable one can use the below code:-

class Test:
    a = 1
    def __init__(self):
        self.b=2

print Test.__dict__["a"]
于 2019-05-29T14:47:58.903 回答