class A:
def __init__(self, text):
self.text = text
def __repr__(self):
return self.text
def __str__(self):
return self.text
def __add__(self, other):
return str(self) + other
def __radd__(self, other):
return other + str(self)
我希望A
对象的列表与str.join()“可连接”。
我应该实现哪个special method来实现这个目标?在
当然,我可以先提取一个文本列表,然后将其加入其中,但这不是我想要的。在
^{pr2}$
__str__
仅在对象的用户希望将其转换为字符串时使用,而str.join
则不使用。您必须显式地将对象转换为str
值,然后str.join
才会使用它们。在(是否可以定义
str.join
来隐式调用它作为参数接收的iterable中的每个元素str
?当然。但事实并非如此。)Python的一个原则是“显式优于隐式”。如果您想
str.join
连接对象的字符串表示,请将str
对象传递给join
。在}的子类。在
^{pr2}$join
将它们隐式处理为str
对象的唯一方法是如果它们是str
对象,也就是说A
是否是{不过,要小心在没有保证的地方使用继承。在
相关问题 更多 >
编程相关推荐