我已经编写了类str(内置)的以下扩展来执行以下操作:假设我有字符串“Ciao”,通过做“Ciao” - 我想要的“a”作为结果字符串“Cio”。这是执行此操作的代码,它可以正常工作:
class my_str(str):
def __sub__(self, other):
p = list(other)
l = ""
for el in self:
if (el in p) == False:
l += el
return my_str(l)
if __name__ == "__main__":
s = my_str("Ciao")
p = my_str("a")
t = s - p
print(t) # 'Cio'
print(s) # 'Ciao'
现在..假设我希望函数__sub__
直接更新对象s
,以便在执行{{1}后输入print(s)
时输出将是“Cio”。如何修改课程s - p
?
答案 0 :(得分:3)
您可以使用
from collections import UserString
class Test(UserString):
def __add__(self, other):
self.data = self.data + other
UserString
类用于对内置字符串进行子类化,并为您提供self.data
字段的实际内容。