0
クラス内からプロパティを呼び出して値を取得しようとしています。私はプロパティがA.foo.__get__(a)
であることを理解していますが、プロパティはクラスのインスタンス内にあるので、私はa
が何であるかわかりません。現在、私の試みはオブジェクトと場所を返します。これは理にかなっていますが、代わりにそのプロパティの値を返すように私はどのように進めるでしょうか?クラス内からプロパティオブジェクトを呼び出していますか?
class Burgers(object):
def __init__(self):
self.burger1 = self.make_burger_dict('mc')
self.burger2 = self.make_burger_dict('bk')
print self.burger1
# prints {1: <property object at 0x10d51b7e0>, 2: <property object at 0x10d51b7e0>}
# what I want {1: 'Big Mac', 2: 'Big Mac'}
@property
def bk(self):
return "Whopper"
@property
def mc(self):
return "Big Mac"
def make_burger_dict(self, key):
return {
1: vars(Burgers)[key],
2: getattr(Burgers, key),
}
x = Burgers()
Iはmake_burger_dict方法で3: eval("self." + key)
を試み、それが所望の結果を生成します。しかし、私はeval
を避けるために聞いたことがあるので、それを使用せずにこれを行うには遠いですか?
'getattr(Burgers、key)'は試しましたが、 'getattr(self、key)'は試していませんでしたか? –