というイディオムをよく使います'{var_name}'.format(**vars(some_class))
。
ただし、プロパティを使用すると、これを使用してプロパティ値を取得できません。
このプログラムを考えてみましょう:
#!/usr/bin/env python
class Foo(object):
def __init__(self):
self._bar = None
self.baz = 'baz here'
@property
def bar(self):
if not self._bar:
# calculate some value...
self._bar = 'bar here'
return self._bar
if __name__ == '__main__':
foo = Foo()
# works:
print('{baz}'.format(**vars(foo)))
# gives: KeyError: 'bar'
print('{bar}'.format(**vars(foo)))
質問:
経由でプロパティ値にアクセスできるようにする方法はあります**vars(some_class)
か?