面向对象

面向对象:

类:

#类是对象的抽象

#类是一种抽象的分类

概念:类是拥有相同属性和行为的事物的总称

特点:抽象

对象:对象是类的具体实例

类和对象的关系:

类是对象的模子

对象是类的具体实例

魔法方法:

__init__:初始化属性 自动调用

__str__:有返回值  打印实例对象的时候会自动调用

__del__:当没有被指向的时候会自动调用

__new__:创建实例对象,并返回此实例的引用

私有:

私有属性:加两个下划线变成私有属性 不能直接调用,可以写get和set,

私有方法:加两个下划线变成私有方法

不能直接调用,可以写公有方法


面向对象:封装、继承、多态

类属性:类也是对象,可以说类对象,完全可以用于属性,这种属性类属性。类属性,如果你不去改变它,不会随着创建实例对象而改变

类私有属性:

类方法:用@classmethod

类方法参数:cls

调用:用类对象或实例对象调用

静态方法:用@staticmethod

参数:无

调用:用类对象或实例对象调用

单例模式:在程序中,拥有唯一一个实例

要重写new方法



继承:

继承好处:实现代码的复用

继承:单继承和多继承都支持

多继承:当两个父类有相同的方法时,子类调用此方法的顺序是根据继承顺序类的 xxx.__mro__

重写:当父类的方法满足不了子类的时候,就要重写

继承注意点:私有方法和私有属性不能直接继承

调用父类方法:super().xxx或父类.xxx(self)

self:实例对象

super:父类

多态:不同的子类对象用于不同的表现形式

python弱类型语言,多态表示形式弱化了

封装:把一些功能封装起来,供别人调用,不用让别人看见里面怎么实现,只管调用


私有属性:就是把属性加上两个下划线就变成了私有属性,不能直接使用。如果想使用,请写get和set方法

私有方法:就是把方法加上两个下划线变成私有方法,不能直接调用,如果想调用,请写共有方法私有方法不能直接继承,可以间接继承.

多继承注意:如果继承的两个父类里面有相同的方法,当调用此方法的时候,会根据继承顺序来。打印的这个顺序的方法是 xxx.__mro__

重写:当父类的行为满足不了子类的行为的时候,就要重写。

调用父类的方法:super().xxx()  父类.xxx(self)

类方法:跟类对象相关

类属性:跟类对象相关


找一个变量来统计我创建多少个对象:

全局变量

局部变量

实例属性

类属性


以上四种方法只有类属性和全局变量可以,而且类属性更简单.

你可能感兴趣的:(面向对象)