Python之面向对象

面向对象特点

注重对象与职责,不同对象,不同职责;

应对复杂项目开发,提供固定模版;

基于面向过程;

封装:根据功能将属性和方法封装到一个抽象的类中;

继承:实现代码复用,相同代码不需多次编写;

多态:不同对象调用相同方法得出不同结果,增加了代码的灵活度;

对象

类创建出来的一个具体存在,可直接使用,拥有类所具有的属性与方法;

类与对象的关系

类是模版,对象根据类创建而出,先有类再有对象;

类只有一个,但对象可以有多个;

类中定义属性与方法,对象中只能具有所创建而出的类所具有的属性与方法;

类的设计三要素

类名:一般满足大驼峰命名法;

属性:一类事物所具有的特征;

方法:一类事物所具有的行为;

添加类的属性

在创建类之后,对象可以在外部直接使用 给对象增加属性,但是这种方式不推荐使用,因为它并没有将属性封装到类的内部中,只是对象临时的属性;

在初始化方法内部定义属性之后,在使用该类创建新对象时,所创建的新对象都会拥有该属性,使用方法: ;

对象及内置方法生命周期

对象从调用 创建时生命周期即开始;

对象生命周期内,既可以访问对象属性,也可以调用对象方法;

对象的 方法一旦调用,对象的生命周期即结束;

身份运算符

功能:用于比较两个对象内存地址是否一致--即判断是否是对同一对象的引用;

和 的区别

用于判断两个变量引用对象是否为同一个;

用于判断引用变量的值是否相等;

私有属性与方法

定义方式:属性名或方法名之前增加两个下划线,则定义的属性或方法就是私有属性或方法;

特点:在对象方法外部是不能直接访问的,只有在方法内部才能够访问;

子类对象不能直接访问父类私有属性或私有方法,但可以通过父类的公有方法间接访问私有属性或私有方法;

伪私有属性与方法

对于定义的私有属性与方法,通过 的方式即可访问,所以说私有属性或方法并非真正意义的私有,而是内部通过特殊处理伪装起来使得外界无法访问的。虽然私有属性或方法我们都可以访问,但日常开发中最好不要使用这种方式来访问私有属性或方法;

注意

内置函数 必须返回一个字符串;

对象的方法内部,可以直接访问对象属性;

对于多个对象之间,各自的属性是互不干扰的;

继承

语法

子类继承于父类,拥有父类所封装的属性与方法,无需二次开发;

子类只需要封装属于自己特有的,有别于父类的属性与方法即可;

特性:传递性;

方法重写:

覆盖基类方法;

对基类方法进行拓展,需要使用 来调用父类方法的执行,然后在方法中其他位置进行对子类方法的扩展;

多继承

语法

注意事项

父类名应该避免重复;

不同父类中的属性或方法应该避免同名;

新式类与经典类

新式类

经典类

实例化

每个对象实例化是都有自己独立的内存空间,用于保存各自不同的属性;

而多个对象的方法在内存中只有一份,在调用方法时需要吧对象的引用传递到方法内部;

类方法

语法

在类方法内部

通过 访问类的属性;

通过 调用其他类方法;

静态方法

需要封装为静态方法的情况:

无需访问实例属性或实例方法;

无需访问类属性或类方法;

语法

实例方法、类方法、静态方法之间的区别

实例方法:方法内部需要访问实例属性,实例方法内部需使用 访问类属性;

类方法:方法内部只需要访问 ;

静态方法:方法内部不需访问 与 ;

您看此文用

·

秒,转发只需1秒呦~

小编也很辛苦,长

按二维码即可打赏!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181009G18PRV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券