【发布时间】:2019-01-24 13:49:04
【问题描述】:
我在继承类中覆盖 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("")
主循环,用户可以在其中更改句子:
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()
字符串没有改变。
【问题讨论】:
-
这个问题可能会受益于对您正在尝试做的事情以及您的示例到底做错了什么的更全面的解释。
-
在一个方法中赋值给
self什么也做不了,你所做的只是改变一个局部变量,当方法返回时它会消失。
标签: python python-3.x string inheritance subclass