【python——类】

1.抽象

将现实世界实体总结归纳成属性和方法到计算机世界变成类的过程。(即抽象的结果是类)

1.1.

类是对象的模型,对象的抽象。它定义了一组属性(称为成员变量)和方法(称为成员函数),是属性方法的集合,对象是根据这些定义创建的。

(1)实例属性

实例属性(也称为对象属性)是指属于一个类的实例的变量。在面向对象编程中,每个实例都可以拥有自己的属性值,这些属性值可以存储与该实例相关的数据。对象属性是对象状态的组成部分,它们定义了对象的特征和行为。并且对象拥有的只能对象访问。

(2)对象方法

实例方法(也称为对象方法)是定义在类中,并且与类的实例相关联的特殊函数。这些方法操作对象的状态,并且可以通过对象实例来调用,且对象拥有的只能对象调用。对象方法至少有一个参数,通常称为self,它代表调用该方法的对象实例。

(3)类属性

类里唯一的,对象公共访问,只能通过类直接修改。

(4)类方法

不需要创建对象,类里唯一的,类直接调用,无默认形参,对象可以调用。

(5)静态方法

不需要创建对象,类里唯一,类可以直接调用,无默认形参,对象也可以直接调用。

(6)抽象方法

抽象方法是一种特殊类型的方法,它只有方法的声明而没有具体的实现。抽象方法不能被直接调用。约束子类必须提供重写该方法,否则会报错。

1.2.构造函数

构造函数__init__+__new__是类里特殊的方法,只在创建对象时调用,无返回值,作用是快速初始化属性(__init__),创建返回对象(__new__)

2.封装

是设置访问级别(__name私有,只能在类内部访问;_name受保护,只有在类内部和继承类中访问;name公开,类的内部外部公共访问)作用是增加数据的安全性。

形式一:age=property(get_age,set_age)

形式二:prop/props

3.继承

在原有类的基础上创建新类的机制,被继承的类称为父类(基类或者超类),继承的类称为子类(派生类),一般到特殊使用继承关系表示。优点是重用、扩展、维护。

3.1.继承的原则

(1)子类只能继承父类非私有成员

(2)子类不能继承父类的构造可以访问,可以继承析构函数

(3)子类不能修改父类的成员,可以在子类里重写成员

(4)子类可以扩展新的成员

(5)任何类都直接或间接继承自object

3.2.多继承

继承类中出现重名方法,直接使用类名调用方法,传入对象。出现多级以及复杂的继承中,可以使用mro分析方法的解析顺序。

​​​​​​​3.3.类型判断

isinstance()判断对象是否是某个类的实例

Issubclass()判断类是否是某个类的子类

​​​​​​​3.4.重写object

_ _ class _ _ 获得类型

_ _ doc _ _ 获得注释

_ _ module _ _ 获得模块名信息

_ _ dict _ _ 获得对象的属性信息,返回字典

_ _ dir _ _() 获得对象的全部成员名,返回列表

_ _ hash _ _ () 获得对象的hash值

_ _ sizeof _ _ () 获得对象占用内存的字节数

_ _ str _ _ () 对象的字符串形式

_ _ eq _ _ () ==

_ _ ne _ _ () !=

_ _ gt _ _ () >

_ _ lt _ _ () <

_ _ ge _ _ () >=

_ _ le _ _ () <=

_ _ add _ _ () +

_ _ sub _ _ () -

_ _ mul _ _ () *

_ _ truediv _ _ () /

_ _ mod _ _ () %

_ _ floordiv _ _ () //

_ _ pow _ _ () **

_ _ call _ _ () 将对象作为函数调用

_ _ enter_ _ () with 结构使用的进入函数

_ _ exit _ _ () with 结构使用的结束函数

4.多态

对象在不同的情况下,具有多种形态,python中处处多态,属于运行时多态。python的多态体现在类的多态,类的多态体现在方法的多态,方法的多态体现在继承关系中的重写,增加程序的扩展性。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值