21Summer\ OOP- Object Oriente Programming

本文详细介绍了Python中类与对象的基本概念,包括构造方法、内置属性与方法、继承与多态等核心特性,并探讨了封装的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象/ 类/ 实例  && 构造方法

此外,也可以等到创建类对应的实例以后、再动态创建实例的属性

使用类变量时应该要是类.属性//实例.属性           因为类变量的作用域只限定义的这一个模块里面

Python会先查找实例变量然偶再查找对应的类变量

类实例的内置属性

obj.__dict__       用dict的形式返回对象的属性

obj.__class__      返回创建实例所用的类名称

 

 类实例的内置方法

__init__(self) 

用于创建类的实例

__str__(self)  

设置对象以字符串类型出现时如何显示

__repr__(self)  

使变量以可读的形式出现,即:由返回值

__getattr__(self,name) 

读取或修改不存在的成员的属性的时候返回的值

__setattr__(self,name,value)  

此处的name表示的是对应的属性名称

__delattr__(self,name)  

用于删除类/实例的属性

__call__(self) 

  如果类内包含有这个方法,那么这个类在实例化之后

是可以被调用的(类似函数)

__len__(self) 

使这个类实例能够使用len函数

__add__(self,other)  

使这个类的实例能够使用加法来计算self + other并有返回值

__iadd__(self,other) 

使这个类实例能够进行操作self+=other并有返回值

__add__(self,other)  

使这个类的实例能够使用减法来计算self - other并有返回值

__isub__(self,other)  

使这个类实例能够进行操作self-=other并有返回值

__sub__(self,other)

使这个类实例能够进行操作self-=other并有返回值

__mul__(self,other)

使这个类实例能够进行操作self*other并有返回值

__imul__(self,other)  

使这个类实例能够进行操作self*=other并有返回值

__mod__(self,other)

使这个类实例能够进行操作self%other并有返回值

__imod__(self,other) 

使这个类实例能够进行操作self%=other并有返回值

__neg__(self)    

使这个类实例能够进行操作-self并有返回值

__pos__(self)   

使这个类实例能够进行操作-self并有返回值

__eq__(self, other) 

检测这两个对象是否为相同的对象#因为默认的比较比的是地址,但是人为的比较比的是属性

类的继承

派生类的构造方法:必须要调用基础类的构造方法,并使用完整的基类名称

名称空间的搜索顺序:先在子类之中找到该方法/属性的内容,然后逐层,按照栈的顺序找到基类对于该属性/方法的定义

单继承、多重继承:如果几个父类中有相同的方法名的时候,默认优先调用class语句中靠前的类

类的多态

多态指的是一个类拥有多个名称相同、但是参数类型以及个数不同的方法成员。

如果同一名称、类型不同的函数出现多次、Python在处理多态时会使用同一名称、类内最后一次引用的函数。

在Python之中我们使用Len()函数 + 可变参数(*args)的形式实现类的多态

注意:在传入参数的时候*args是声明其为可变参数状态、可以有很多个参数传入函数。但是在len函数处理的时候只能由一个obj,否则会raise一个TypeError

类的封装

使用__(两个下划线)来规定一个私有的属性、编译时属性的名称变为obj._ClassName_AttributeName

如果直接使用__AttributeName或者AttributeName来访问这个属性的话,是无法访问的

或者,在类的内部定义一个get__Attribute函数来实现访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值