python 面向对象的进阶

非 Y 不嫁゛ 提交于 2019-11-26 13:46:14

1、@property装饰器

# 使用装饰器的时候,需要注意:
# 1. 装饰器名,函数名需要一致.
# 2. property需要先声明,再写setter,顺序不能倒过来
# 3. 如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property
# 4. 如果要修改访问器中的变量,可以搭建一个修改器,或者删除访问器.
 

 

2、在python中类是动态的

 

Python是一门[动态语言]。通常,动态语言允许我们在程序运行时给对象绑定新的属性或方法
当然也可以对已经绑定的属性和方法进行解绑定。但是如果我们需要限定自定义类型的对象只
能绑定某些属性,可以通过在类中定义\_\_slots\_\_变量来进行限定。需要注意的是\_\_slots
\_\_的限定只对当前类的对象生效,对子类并不起任何作用。
 

 

 

3、继承和多态


众所周知,可以在已有类的基础上创建新类,这其中的一种做法就是让一个类从另一个类那里将属性和方法直接继承下来,从而减少重复代码的编写。提供继承信息的我们称之为父类,也叫超类或基类;得到继承信息的我们称之为子类,也叫派生类或衍生类。子类除了继承父类提供的属性和方法,还可以定义自己特有的属性和方法,所以子类比父类拥有的更多的能力,在实际开发中,我们经常会用子类对象去替换掉一个父类对象,这是面向对象编程中一个常见的行为,对应的原则称之为[里氏替换原则] 

 

 

子类在继承了父类的方法后,可以对父类已有的方法给出新的实现版本,这个动作称之为方法重写(override)。通过方法重写我们可以让父类的同一个行为在子类中拥有不同的实现版本,当我们调用这个经过子类重写的方法时,不同的子类对象会表现出不同的行为,这个就是多态

 

 

4、列表生成

列表生成式
a=[x for X in range ( 100000000000) if x % 2== 0]
优点:计算速度快,因为一次性已经全部加载到内存中了,适合数据量不是太大的情况10000- 2000-
缺点:占用内存
列表生成器
a=(来for x in range ( 100000000000) if x % 2== 0)
优点:节约内存空间
缺点:计算速度慢,因为要生成
 

 

另一种装饰器(常用,非常重要)

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!