风变编程干货整理-2021.6.5
2021/6/6 12:21:02
本文主要是介绍风变编程干货整理-2021.6.5,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
- 2021年6月5日下午列车讨论:
1.类属性本身不需要实例化也可以调用。
2.实例化之后得到的就是实例属性,就是专属于各个实例自己的属性,就是初始化方法__init__里面那些self.xxx=xxx。
这里的self是一个占位符,直接指向实例对象,也就是说,如果是实例对象的方法或者属性,就一定要添加self这个占位符。
相当于在类没有创建实例对象前,用self先给它占个位,实例化后,self就“退位让贤”。
3.
4.pass语句,其作用是:
不执行任何操作,但pass本身是一个语句,所以计算机还是会执行该语句的,
但如果不写,计算机会报错,因为计算机找不到可执行的代码,就会报错。
5.在检索时,应该先遵循多重继承的就近原则,再看是否有多层继承,如果有的话,检索到底,如果没有,则继续向后检索父类。
6.就近原则中的一个细节:多重继承中,若某父类还有父类的话,会先继续往上找到顶。
#案例1: class C0: name='C0' class C1: num=1 class C2(C0): num=2 class C3: name='C3' class C4(C1,C2,C3): pass ins=C4() print(ins.name) print(ins.num) #C0,C1,C3属于同一个层级,C1,C2,C3是C4的多重继承;C0是C4的多层继承。 #先看多重继承,打印ins.name 的时候还是先去找C1,C1没有name这一属性;接着去找C2,此时发现有多层继承(C0是C4的多层继承),便去找C0,C0有name这一属性,所以打印出ins.name为‘C0’; #打印ins.num的时候还是先去找C1,C1有num这一属性,所以打印出ins.num为1。 #输出结果: #C0 #1 #案例2: class C0: name='C0' class C1(C0): num=1 class C2(C0): num=2 class C3(C0): name='C3' class C4(C1,C2,C3): pass print(C4.name) print(C4.num) #输出结果: #C3 #1 #案例3: class C0: name='C0' class C1(C0): num=1 class C2(C0): num=2 class C3(C0): name='C3' class C4(C1,C2,C3): pass a=C4() print(a.name) print(a.num) #C1,C2,C3是C4的多重继承,C0是C4的多层继承。 #输出结果: #C3 #1
辅助理解图:
这篇关于风变编程干货整理-2021.6.5的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南