Python には、辞書を使用して文字列を置換する優れた方法があります。
(辞書を使用するのではなく) 自分のオブジェクトでこれと同じ動作を再現するにはどうすればよいですか?
In [1]: d = {'hello': 'world'}
In [2]: '%(hello)s' % d
Out[2]: 'world'
たとえば、クラスがある場合MyClass
:
In [3]: class MyClass():
a = 'x'
b = 'y'
In [4]: m = MyClass()
{'a' : 'x'}
マッピングがなければ、文字列置換でエラーがスローされることが予想されます (実際にエラーが発生します)が、次のように動作するようにしたいとし'x'
ます。
In [5]: '%(a)s' % m
TypeError: format requires a mapping
フォーマット文字列構文 ( __format__
)またはテンプレート文字列をいじっていますが、成功していません。
文字列置換で使用する「マッピング」(辞書?) をクラスに提供するにはどうすればよいですか?