【Python中面向对象的学习】


面向对象:

类:基础标准

对象:根据标准产生的具体的实例

关系:对象是类的实例化结果,一个类会产生多个对象

使用面向对象:

先有类----通过类创建对象----对象调用类里规定的属性、方法

python里的魔术方法:由类提供,两个下划线开始,两个下划线结束


__init__方法:在创建一个对象时默认被调用

__init__方法里的self参数,在创建对象时不需要传递参数

在类的内部,可以使用self来使用属性和调用方法;在类的外部,需要使用对象名来使用属性和调用方法

__del__方法:

创建对象后,python解释器默认调用__init__()方法;

当删除对象时,python解释器会默认调用__del__方法

__str__方法和__repr__方法

两个方法都用于显示输出结果,__str__是面向用户的,显示结果更加友好,__repr__是面向程序员的

调用repr()函数时内部会调用对应的__repr__函数,调用str()函数时内部会调用对应的__str__函数

%r格式化对应的是调用repr()函数,%s格式化对应的是调用repr()函数

当调用print函数时,对应调用的是__str__函数;当直接在终端输出对象时,调用的是__repr__函数


比较运算符相关的魔法方法:

 __eq__:等于(=)         __ne__:不等于(!=)

__lt__:小于(<)            __gt__:大于(>)

__le__:小于等于(<=)   __ge__:大于等于(>=)


算术运算符相关的魔法方法:

__add__:+              __sub__:-

__mul__:*               __truediv__:/

 __mod__:%           __pow__:**


类型转换相关的魔法方法:

__int__:整数           __float__:浮点数

 __str__:浮点数       __bool__:布尔型

内置属性

使用内置函数dir可以查看一个对象支持的所有属性和方法

__slots__:Python中支持动态属性,可以直接通过点语法直接给一个对象添加属性,代码更加的灵活。

但是在某些情况下,我们可能需要对属性进行控制,此时,就剋使用__slots__实现
__doc__:表示类的描述信息

__module__: 表示当前操作的对象在那个模块

__class__: 表示当前操作的对象的类是什么

__dict__:以字典的形式,显示对象所有的属性和方法
__getitem_、\_setitem__和__delitem__方法:是将对象当做字典一样进行操作

 
实例属性

通过类创建的对象被称为实例对象,对象属性又称为实例属性,

记录对象各自的数据,不同对象的同名实例属性,记录的数据各自独立,互不干扰。

类属性

类属性就是类对象所拥有的属性,它被该类的所有实例对象所共有,类属性可以通过类对象或者实例对象访问

类属性和实例属性不能同名,如果有同名实例属性,实例对象会优先访问实例属性。
类属性只能通过类对象修改,不能通过实例对象修改
类属性也可以设置为私有
 


版权声明:本文为zz130428原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。