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'}
ie 具有以下 return 'x'
:
In [5]: '%(a)s' % m
TypeError: format requires a mapping
我一直在搞乱格式字符串语法 ( __format__
)或模板字符串,但没有成功。
如何为我的班级提供“映射”(字典?)以用于字符串替换?