web-dev-qa-db-ja.com

その属性の名前に対応する文字列が与えられたオブジェクト属性にアクセスする方法

tで指定されたxの属性の値をどのように設定/取得しますか?

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

t = Test()
x = "attr1"
115
Nullpoet

getattr および setattr と呼ばれる組み込み関数があります

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

この場合

x = getattr(t, 'attr1')
setattr(t, 'attr1', 21)
225
Pratik Deoghare

注:この答えは非常に時代遅れです。これはPython 2を使用してnewモジュールを使用しました 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
2
aatifh