---恢复内容开始---
补充:
私有变量不可被继承,但是可以通过
1.通过访问器
2.找到它真正的名字
面向对象进阶2
静态调用方法
如果类中需要非该类成员存在,则可以使用静态调用的方法@staticmethod,如下图所示:
静态方法案例:输入四条边,判断它是否是一个正方形,如果是,计算其面积
继承
我们
列表生成式,如图
列表生成器,如图
列表生成式与列表生成器对比:
列表生成式:
a = [x for x in range(100000) if x % 2 == 0
优点:计算速度快,因为一次性已经全部加载到内存中了,
适合数据量不是太大的情况10000-20000
缺点:占用内存
列表生成器:
a = (x for x in range(100000) if x % 2 == 0)
优点:节约内存空间
缺点:计算速度慢
闭包
我们可以将闭包理解为一种特殊的函数,这种函数由两个函数的嵌套组成,且称之为外函数和内函数,外函数返回值是内函数的引用,此时就构成了闭包。
例:
装饰器
python装饰器(fuctional decorators)就是用于拓展原来函数功能的一种函数,目的是在不改变原函数名(或类名)的情况下,给函数增加新的功能。 这个函数的特殊之处在于它的返回值也是一个函数,这个函数是内嵌“原“”函数的函数。
使用装饰器的时候,需要注意:
1. 装饰器名,函数名需要一致.
2. property需要先声明,再写setter,顺序不能倒过来
3. 如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property
4. 如果要修改访问器中的变量,可以搭建一个修改器,或者删除访问器.
例:
装饰器案例1:创建一个装饰器,三个函数(两个参数),装饰器处理这两个参数的和,并打印,每一个函数打印这两个数字。
装饰器案例2:装饰器将前两个数字求和,函数本身第三个参数乘上这个和
---恢复内容结束---