我对为 Python 中的类提供 __str__
的想法很感兴趣,但是,特别是现在数据类已经成为一种东西,我发现需要定义 __str__
用于类的属性。这是一个极其人为的示例:
class Example():
what = ['t', 'e', 's', 't']
def __init__(self, is_test=True):
self.is_test = is_test
def __str__(self):
if self.is_test:
return f'This is just a {"".join(self.what)}'
return f'This is not a {"".join(self.what)}'
def print_what(self):
return "".join(self.what)
a = Example()
> print(a)
This is just a test
> print(a.print_what())
test
> print(a.what)
['t', 'e', 's', 't']
我想要做的是遵循类中 what
属性的相同 __str__
模式,以便 print(a.what)
将显示 test
而不是 ['t', 'e', 's', 't']
。是否可以为属性提供 __str__ 表示形式?也许用装饰器之类的东西?
最佳答案
在这种情况下您可能想要使用属性。 例如:
class Example:
_data = ['t','e','s','t']
@property
def data(self):
return "".join(self._data)
a = Example()
> print(a.data)
test
关于python - 为属性提供自定义 __str__ 表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58203538/