函数重写 overwrite
什么是函数重写
在自定义的类内添加相应的方法,让自定义的类生成的对象(实例)像内建对象一样进行函数操作
对象转字符串函数:
repr(x) 返回一个能代表此对象的表达式字符串,通常:
eva l(repr(obj)) = obj
str(obj) 通过给定对象,返回一个字符串(这个字符串通常是给人阅读的)
对象转字符串函数的重写方法
repr() 函数的重写方法
def __repr__(self):
...
return 字符串
str() 函数的重写方法:
def __str__(self):
...
return 字符串
str(obj) 函数调用方法说明:
1. str(obj) 函数先查找obj.__str__() 方法,调用此方法并返回结果
2. 如果obj.__str__() 方法不存在,则调用obj.__repr__()方法并返回结果
3. 如果obj.__repr__方法不存在,则调用object类的__repr__实例方法显示<__main__.MyNumber object at xxx> 格式的字符串
内建函数重写
__abs__ abs(obj) 函数调用
__len__ len(obj) 函数调用
__reversed__ reversed(obj) 函数调用
__round__ round(obj) 函数调用