鱼C论坛

 找回密码
 立即注册
查看: 1862|回复: 4

[已解决]【第41讲】视频内容

[复制链接]
发表于 2020-3-3 14:30:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 xiaofan1228 于 2020-3-3 14:37 编辑
#小甲鱼视频教程原文
class CapStr(str):
    def __new__(cls, string):
        string = string.upper()
        return str.__new__(cls, string) 
#最后一行用return string 结果是一样的,意义一样吗? 
最佳答案
2020-3-3 15:01:17
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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-3 14:41:44 | 显示全部楼层
当然不一样(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'>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 14:56:25 | 显示全部楼层
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, '')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-3 15:01:17 | 显示全部楼层    本楼为最佳答案   
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'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-3 15:08:22 | 显示全部楼层
zltzlt 发表于 2020-3-3 15:01
是的,这样会更好:

学习了,感谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-12 06:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表