类和对象总结

对着背影说爱祢 提交于 2019-12-08 10:36:30

一、类的三大属性:

  1、封装:针对的是属性,把属性封装到对象中,保护属性的安全。可通过__name或者_name的方式,getter和setter的方法来间接访问和修改实例的属性,可通过@property装饰器来修饰get_name方法,把该方法的调用改为属性的访问。通过@name.setter装饰器来修饰set_name方法,把该方法的调用改为属性的修改。

  2、继承:针对的是类本身,通过子类继承父类的功能,实现代码的复用,程序的简化,功能的扩展,符合OCP(开闭原则),扩展开放修改开闭的原则

  3、多态:多态针对的是方法,不同类型的对象可以调用同一个方法或者函数,只要此类对象拥有相同的属性。如len()方法,实质是函数的重载,保证了代码的灵活性

  --封装保证了数据的安全性,继承保证了程序的扩展性,多态保证了程序的灵活性。

二、类属性VS实例属性

  --直接定义在类代码块的变量叫做类属性,类和实例都可访问,但只能是类可以进行修改。只有那些公共的属性才会放到类属性中,使用不多。

  --通过__init__方法初始化或者对象属性直接赋值的方法获得的属性叫做实例属性,实例可以访问,类不能够访问。

三、类方法VS实例方法

  --类方法:通过@classmethod装饰器装饰的方法称为类方法,方法中的形参为(cls),类和实例都可访问类方法。

  --实例方法:直接定义在类中且方法的第一个形参为(self)的方法称为实例方法,类和实例都可以访问实例方法,当类去调用时,必须传入一个实例对象 A.XX(a)。

四、静态方法

  --在类中通过@staticmethod修饰的方法叫做静态方法,静态方法可以不用指定默认参数,静态方法更像是一个放在类中的函数,多数是工具函数,类和实例对象都可以调用静态方法。A.XX() | a.XX()

五、类中的特殊方法

  -- 类似__xx__()形式的方法称之为特殊方法,或者魔术方法(magic),特殊方法是程序自动调用的,特殊情况下可以手动调用。

  -- __new__() new对象方法,在创建对象时自动调用,用于创建一个新的对象

  -- __init__()初始化方法,用于实例创建时的属性初始化

  -- __del__()删除方法,当一个对象不被引用时将被垃圾回收,通过del方法,对象删除之前调用,用于把对象从内存中删除,释放内存

  -- __str__() 方法,当对象本身将被转化为字符串时调用,作用是返回一个字符串,用来指代该对象。常用的是print()函数

  --__repr__()方法,当对象在交互模式下直接显示的结果  

  -- __gt__()大于比较方法,__gt__(self, other),当用于大于比较时会自动调用,比较2个对象的某个属性的大小,返回True或者False

    --类似的方法有 ge(大于等于)  lt(小于) le(小于等于) eq(等于) ne(不等于)      

  -- __len__() 方法,获取对象的长度

  -- __bool__()方法,返回对象的一个bool值  

  -- __add__()方法,用于对象的加法运算,是多态的一个体现

    --类似的方法有sub\mul等等。

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