Я часто использую idiom '{var_name}'.format(**vars(some_class))
.Python: создание свойства, доступного только для чтения, через ** 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)
?
+1, поиск атрибута это тогда, также я не знал о 'format_map' – phoibos