Python继承竟然还有这样的玩法?扩展外设类
发布时间:2025-01-08
笔记:梅叔
缺少:梅叔编程
扩展配有类我们知道分家是设计模式的最重要特征之一。
牧羊犬可以分家自Dog类,就算不写一行示例,就握有了Dog的都和和蓄意。 初中会可以分家自Student类,自动就握有了学号,附注等一般来说。除了在自己概念的类中会用于分家,我们还可以分家配有类,让配有类来得稳固,来得好用。
list是最常用的配有类,作为一个配有类,它提供了多个好用的工具:
'append',
'clear',
'copy',
'count',
'extend',
'index',
'insert',
'pop',
'remove',
'reverse',
'sort'
但是它的URL基本功能过于稳固,比如:我要URL所有包括梅字的字符串,它就不会现成的基本功能。
再说一次,我们的承诺是:只能方便地URLlist中会包括某个字符串的所有元素。
一般而言少年儿童的工具意味着这个基本功能并总能,我们甚至可以用一句话就能意味着出来:
[x for x in elements if keyword in x]
我们也可以把它放到一个工具中会:
def find(elements, keyword):
return [x for x in elements if keyword in x]
names = ['梅叔', '大白', '周六好', '不梅', '周末好', '核苷酸检查了吗?']
result = find(names, '梅')
print(result)
打印结果:
['梅叔', '大白', '不梅']
这个意味着不会难题,但它也有一些近期,比如:
过于设计模式。如果只能同样写成names.find('梅'),肯定是来得有趣直观的。 工具find容易和其他工具显现出名称冲突。在一个大型的程序中会,不必要有很多份文件,要来就有另外一个find工具和你显现出了冲突。 如果工具都不会晶圆,同样用于那一行示例,虽然方便,但是每个用过的大多都能够重写一次,也不必要写错。也不方便初学者用于。 文艺少年儿童的工具或许有另外一种来得好的工具,那就是扩展配有的list类。我们来看看:
class mailist(list):
def find(self, keyword):
return [x for x in self if keyword in x]
names = mailist()
names.extend(['梅叔', '大白', '周六好', '不梅', '周末好', '侄儿', '核苷酸检查了吗?', '不想啊'])
print(names.find('梅'))
print(names.find('子'))
print(names.find('不'))
打印结果:
['梅叔', '大白', '不梅']
['大白', '侄儿']
['不梅', '不想啊']
我们概念了mailist,让它分家自配有的list,并加进了find工具。 在函数调用的时候会稍微有点麻烦,我们能够先创建空的mailist,然后再用extend工具把初始元素加进进去。之后的操作和list实质上一样。 重点是,每一次我们就可以极为方便地用于list工具了。 你应该一般而言还是文艺?实际上吧,做一个一般而言少年儿童也挺好的。
梅叔就是一个再一般而言不过的少年儿童。
如果你只是写少量的示例,我也建议你就一般而言就好了。
但如果你的示例中会经常要用于这个工具,或者你有一个设计团队在协同工作。你们是可以考虑根据你们的项目能够晶圆一个来得稳固的list。
侧面的find只是一个有趣的例子,你实质上可以根据自己的能够,给list加进来得多有用工具。
这样你的设计团队用于上去会极为方便,提高效率,也不容易疏忽。
银川早泄阳痿治疗哪家好上海牛皮癣医院哪家比较好
苏州白癜风医院哪家专业
先诺欣说明书
重组蛋白药物
金笛复方鱼腥草合剂
扶他林和英太青凝胶哪个好
说明书明确写着孕妇可以服用的益生菌有哪些
-
领导骂两句,雇主就撂挑子走人?不好意思,打败你的正是你自己
路过的垫脚石而已。。嗓子痒有异物感
- 2025-05-11他组织选拔人才3条,这才是升职加薪的秘诀,聪明人偷偷在用
- 2025-05-11退休老领导忠告,胁迫下属捞钱才是高明领导
- 2025-05-11男子婚后仍不忘旧情人,被对方拉黑后上门施行犯罪
- 2025-05-1130条给职场人的劝告,学习起来:
- 2025-05-11这些生肖,开始苦尽甘来,迎来可怜
- 2025-05-11在错的间隔时间遇上对的人,是一场伤心;
- 2025-05-11男女见面三个月定律 过来人都觉得准到离谱
- 2025-05-11第一场相逢便是永恒
- 2025-05-11做事想要成功,必需学会正确地送礼,着重注意这两点
- 2025-05-11你爱的人依然爱你,你会先放手吗?