我在继承的类中覆盖 str 时遇到了问题。有没有办法做类似的事情?class Sentence(str): def input(self, msg): """Extend allow to hold one changing object for various strings.""" self = Sentence(input(msg)) def simplify(self): self = self.lower() self.strip()我想更改包含在该类中的字符串,以用于各种用途。有没有办法做到这一点?因为我从堆栈中尝试了很多东西,但没有人帮助我。@编辑:有一个解释我想做什么: 在 init 中,我初始化 Sentence 类:self.sentence = Sentence("") Mainloop,用户可以在其中更改 Sentence:self.sentence.input("Your input:")之后我想简化算法的字符串:self.sentence.simplify()这就是全部,之后我想使用 self.sentence 之类的字符串。但在这两种方法中: def input(self, msg): """Extend allow to hold one changing object for various strings.""" self = Sentence(input(msg)) def simplify(self): self = self.lower() self.strip()字符串没有改变。
1 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
由于诸如 Python 之类的优化语言对字符串执行(即它们是不可变的,因此可以重用相同的字符串),我认为从 str 继承不是一个好习惯,相反,您可以编写一个包装字符串的类:
class Sentence:
def __init__(self, msg: str):
self.msg = msg
def simplify(self):
self.msg = self.msg.lower().strip()
通过这种方式,您可以改进您的实现,例如,如果您经常更改字符串并且遇到性能问题。
添加回答
举报
0/150
提交
取消