Python(七)

本文详细介绍了Python面向对象编程中的关键概念,包括__del__方法与垃圾回收机制,可调用对象的__call__方法,方法的重载与动态性,封装、继承和多态的运用,私有属性和私有方法,以及特殊方法和运算符重载。
摘要由CSDN通过智能技术生成

面向对象编程

__del__方法(析构函数)和垃圾回收机制

__del__方法称为“析构方法”,用于实现对象被销毁时所需的操作。

Python实现自动的垃圾回收,当对象没有被引用时(引用计数为0),由垃圾回收器调用__del__方法。

也可以通过del语句删除对象,从而保证调用__del__方法

__call__方法和可调用对象

定义了__call__方法的对象,称为“可调用对象”,即该对象可以像函数一样被调用

方法的重载

在其他语言中,可以定义多个重名的方法,但在Python中,方法的参数没有类型,因此Python中没有方法的重载。如果在类体中定义了多个重名的方法,只有最后一个方法有效

方法的动态性

Python是动态语言,可动态的为类添加新的方法,或者动态的修改类的已有的方法

私有属性和私有方法(实现封装)

Python对于类的成员没有严格的访问控制限制,关于私有属性和私有方法,有如下要点:

1.两个下划线开头的属性是私有的(private),其他为公共的(public)

2.类内部可以访问私有属性(方法)

3.类外部不能直接访问私有属性(方法)

4.类外部可通过“_类名__私有属性(方法)名”访问私有属性(方法)

@property装饰器

@property可以将一个方法的调用方式变成“属性调用”

面向对象三大特征

封装(隐藏)

隐藏对象的属性和实现细节,只对外提供必要的方法

继承

继承可以让子类具有父类的特性,提高了代码的重用性

多态

多态是指同一个方法调用由于对象不同会产生不同的行为

继承

语法格式:

class 子类类名(父类1[,父类2,...]):

        类体

定义子类时,必须在其构造函数中调用父类的构造函数,格式如下:

父类名.__init__(self,参数列表)

类成员的继承和重写

1.成员继承:子类继承了父亲除构造方法之外的所有成员

2.方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为“重写”

查看类的继承层次结构

通过类的方法mro()或者类的属性__mor__可以输出这个类的继承层次结构

object类根

object类是所有类的父类,所有的类都有object类的属性和方法

dir()查看对象属性

以上有几个要点:

1.Person对象增加了六个属性:__dict__,__module__,__weakref__,age,name,say_age

2.object的所有属性,Person类作为object的子类,包含了所有的属性

3.say_age是方法,也是属性,类型是“method”

重写__str__()方法

object有一个__str__()方法,用于返回一个对于“对象的描述”,对应于内置函数str()经常用于print()方法,帮助查看对象的信息,__str__()可以重写

多态

同一个方法调用由于对象不同可能会产生不同的行为。

注意:1.多态是方法的多态,属性没有多态

2.多态的存在有2个必要条件:继承、方法重写

特殊方法和运算符重载

常用的特殊方法如下:

每个运算符实际上也都对应了相应的方法:

特殊属性

Python对象中包含了很多双下划线开始和结束的属性,是特殊属性,有特殊用法

​​​​​​​

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值