25

コードは次のとおりです。

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

のインスタンスを作成するとTest、次のようにそのインスタンス変数にアクセスできますb(文字列「b」を使用)。

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

ただし、 。という名前のキーが含まれていないため、機能しませaん。それでは、文字列しかない場合、どうすればアクセスできますか?self.__dict__aaa

ありがとう!

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場合に備えて、いくつかを返す3番目の引数を使用します。a_stringTest

于 2015-02-19T19:58:01.153 に答える
1

変数はクラス変数であるため、次のコードを使用できます。-

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

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