2 回答
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
TA贡献1841条经验 获得超3个赞
至于你的第一个问题:改变内置类基本上是不可能的。虽然你可能会干扰其他类,但这通常是一个糟糕的主意。相反,您可以创建一个具有所需属性的子类。
例如:
class mystr(str):
def __add__(self, other):
return mystr(str(self) + str(other))
此代码继承了该类的所有属性str,除了我们要更改的属性(即其添加行为)。通过强制转换self,str我们仍然委托 tostr的添加,但我们还将其他参数强制转换为str以获得您所描述的行为。
最后,我们返回到,mystr这样我们就不会得到str.
现在我们可以执行以下操作:
>>> some_string = mystr("abc")
>>> some_string + 4
"abc4"
![?](http://img1.sycdn.imooc.com/54584ee0000179f302200220-100-100.jpg)
TA贡献1906条经验 获得超10个赞
你可以这样做:
class stringclass:
def __init__(self, mystring):
stringclass.mystring = mystring
def add(self, number):
stringclass.mystring = stringclass.mystring + repr(number)
然后:
myobject = stringclass("My age is ")
“添加”号码:
myobject.add(46)
然后检查对象:
print(myobject.mystring)
这会给你:
My age is 46
(不过,我根本不知道这有什么用处。)
添加回答
举报