Python——类的方法重写、property、运算符重载
来源:http://www.tudoupe.com时间:2022-01-21
1.super()函数
主要是用来调用父类的方法,在子类中调用父类的方法时进行使用。
2.私有方法、私有属性
(1)定义方法:
在类的内部,使用def关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数self,且为第一个参数。
(2)私有方法:
__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用 self.__private_methods。
(3)私有属性:
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。
3.property() 函数
(1)作用:
在新式类中返回属性值。
(2)语法:
(3)参数:
fget——获取属性值的函数
fset——设置属性值的函数
fdel——删除属性值函数
doc——属性描述信息
4.重载
方法 | 描述 | 简单的调用 |
---|---|---|
__init__ ( self [,args...] ) | 构造函数。 | obj = className(args) |
__del__( self ) | 析构方法, 删除一个对象。 | del obj |
__repr__( self ) | 转化为供解释器读取的形式。 | repr(obj) |
__str__( self ) | 用于将值转化为适于人阅读的形式。 | str(obj) |
__cmp__ ( self, x ) | 对象比较。 | cmp(obj, x) |
方法 | 描述 | 何时调用 |
---|---|---|
__add __ | + | X+Y, X+=Y |
__sub __ | - | X-Y,X-=Y |
__mul __ | * | X*Y |
__pow__ | ** | X**Y |
__cmp __ | 比较:== | X==Y,X<Y |
__lt __ | 比较:< | X<Y |
__eq __ | 比较:= | X=Y |
__str __ | 打印转换 | print X,str(X) |
例:
运行效果:
5.单下划线、双下划线、头尾双下划线说明:
__foo__:定义的是特殊方法,一般是系统定义名字,类似 __init__() 之类的。
_foo:以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import * 。
__foo:双下划线的表示的是私有类型(private)的变量,只能是允许这个类本身进行访问了。
6.案例
(1)动态给类添加方法,具体是对猫的类中没有设置奔跑的方法, 在类外添加这个方法,并是打印显示。
小猫类:Cat
运行结果:
(2)在类中对__pow__、__cmp__进行运算符重载,主要对的两个成 绩进行平方运算、比较两个成绩。
成绩类:Grade
运行结果:
相关新闻
- 2023-05-06 微pe怎么初始化U盘(微pe怎么恢复初
- 2023-05-06 Xp系统boot 进入pe(boot manager 怎么进入
- 2023-05-06 win pe修复bcdboot(pe修复系统)
- 2023-05-06 win7更新失败 pe(win7更新失败还原更
- 2023-05-06 u盘装了pe读取不了(u盘能进pe读取不
- 2023-05-06 u盘pe 发热(u盘发热烫手)
- 2023-05-06 u盘pe下看不到硬盘(u盘启动pe看不到
- 2023-05-06 pe盘 ntfs(u盘ntfs格式)
- 2023-05-06 sony笔记本进入pe模式(联想笔记本怎
- 2023-05-06 pe启动盘进不去(pe启动盘进不去系统
|
|
|
|
|
|
|
|
|
|