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
运行结果:
相关新闻
- 2022-01-28 S32DS——PE调试器使用
- 2022-01-28 华硕M2N-MX SE主板如何进入bios设置
- 2022-01-28 华硕B85-A主板如何是通过bios设置u盘
- 2022-01-27 ltraISO 生成u盘启动盘后处理事项
- 2022-01-27 华硕P5QL-CM主板如何通过bios设置u盘
- 2022-01-27 微pe怎么安装原版win11 微pe安装原版
- 2022-01-26 win10 esd系统怎么用pe安装
- 2022-01-26 电脑系统装机教程图解(电脑装机
- 2022-01-25 非mbr怎么激活
- 2022-01-25 eprime安装教程
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
