【第41讲】视频内容
本帖最后由 xiaofan1228 于 2020-3-3 14:37 编辑#小甲鱼视频教程原文
class CapStr(str):
def __new__(cls, string):
string = string.upper()
return str.__new__(cls, string)
#最后一行用return string 结果是一样的,意义一样吗?
当然不一样(type 不一样)
>>> class CapStr(str):
def __new__(cls, string):
string = string.upper()
return str.__new__(cls, string)
>>> type(CapStr('1'))
<class '__main__.CapStr'>
>>> class CapStr(str):
def __new__(cls, string):
string = string.upper()
return string # 替换成 return string
>>> type(CapStr('1'))
<class 'str'> zltzlt 发表于 2020-3-3 14:41
当然不一样(type 不一样)
那这一讲的课后题答案岂不是也有问题了?
要求定义一个 Nstr 类,支持字符串的相减操作:A – B,从 A 中去除所有 B 的子字符串。
这样返回的type还是 str
class Nstr(str):
def __sub__(self, other):
return self.replace(other, '')
xiaofan1228 发表于 2020-3-3 14:56
那这一讲的课后题答案岂不是也有问题了?
要求定义一个 Nstr 类,支持字符串的相减操作:A – B,从 A...
是的,这样会更好:
>>> class Nstr(str):
def __sub__(self, other):
return Nstr(self.replace(other, ''))
>>> a = Nstr('123456') - Nstr('1234')
>>> type(a)
<class '__main__.Nstr'>
>>> a
'56' zltzlt 发表于 2020-3-3 15:01
是的,这样会更好:
学习了,感谢!!
页:
[1]