【笔记】Python3方法的重写

前言

Python3方法的重写学习笔记

构造方法重写

  • 两个_开头和结尾的方法称为构造方法

初始化

  • __init__()方法会在对象被创建时自动执行
1
2
3
4
5
class 类名:
def __init__(self):
...

变量名 = 类名()

销毁

  • __del__()方法会在对象被销毁时自动执行
1
2
3
4
5
class 类名:
def __init__(self):
...

del 变量名

运算符重写

  • 运算符重载指的是将运算符与类的方法关联起来,每个运算符对应一个指定的内置方法

对象加法运算

1
2
3
4
5
6
7
8
class 类名:
def __add__(self):
...

a = 类名()
b = 类名()

a + b

对象减法运算

1
2
3
4
5
6
7
8
class 类名:
def __sub__(self):
...

a = 类名()
b = 类名()

a - b

对象乘法运算

1
2
3
4
5
6
7
8
class 类名:
def __mul__(self):
...

a = 类名()
b = 类名()

a * b

对象除法运算

1
2
3
4
5
6
7
8
class 类名:
def __div__(self):
...

a = 类名()
b = 类名()

a / b

对象取余运算

1
2
3
4
5
6
7
8
class 类名:
def __mod__(self):
...

a = 类名()
b = 类名()

a % b

对象大于运算

1
2
3
4
5
6
7
8
class 类名:
def __gt__(self):
...

a = 类名()
b = 类名()

a > b

对象大于等于运算

1
2
3
4
5
6
7
8
class 类名:
def __ge__(self):
...

a = 类名()
b = 类名()

a >= b

对象小于运算

1
2
3
4
5
6
7
8
class 类名:
def __lt__(self):
...

a = 类名()
b = 类名()

a < b

对象小于等于运算

1
2
3
4
5
6
7
8
class 类名:
def __le__(self):
...

a = 类名()
b = 类名()

a <= b

对象相等运算

1
2
3
4
5
6
7
8
class 类名:
def __eq__(self):
...

a = 类名()
b = 类名()

a == b

对象不相等运算

1
2
3
4
5
6
7
8
class 类名:
def __ne__(self):
...

a = 类名()
b = 类名()

a != b

打印或转换对象运算

1
2
3
4
5
6
7
class 类名:
def __repr__(self):
...

a = 类名()

repr(a)
1
2
3
4
5
6
7
class 类名:
def __str__(self):
...

a = 类名()

print(a)

对象索引运算

1
2
3
4
5
6
7
class 类名:
def __getitem__(self):
...

a = 类名()

a[0]

对象索引赋值

1
2
3
4
5
6
7
class 类名:
def __setitem__(self):
...

a = 类名()

a[0] = 0

对象索引和分片删除

1
2
3
4
5
6
7
class 类名:
def __delitem__(self):
...

a = 类名()

del a[0]

完成