《Python程序设计基础07_9运算符重载和特殊方法ppt课件.pptx》由会员分享,可在线阅读,更多相关《Python程序设计基础07_9运算符重载和特殊方法ppt课件.pptx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、在此输入您的封面副标题Python程序设计基础程序设计基础07_9运算符重载和特殊方法运算符重载和特殊方法杭州师范大学杭州师范大学 虞歌虞歌 第第2页页Python程序设计基础程序设计基础对象和类对象和类杭州师范大学杭州师范大学 虞歌虞歌 第第3页页Python程序设计基础程序设计基础对象和类对象和类重载重载是指相同的名字或符号具有不同的意义。是指相同的名字或符号具有不同的意义。同同一个运算符一个运算符+,针对不同的操作数,具有不同的意义。,针对不同的操作数,具有不同的意义。在在Python中,整数类中,整数类int对运算符对运算符+进行了重载,执行加法操作。浮点数类进行了重载,执行加法操作。
2、浮点数类float对对运算符运算符+进行了重载,执行加法操作。字符串类进行了重载,执行加法操作。字符串类str对运算符对运算符+进行了重载,使其进行了重载,使其执行字符串连接操作,而不是加法操作。同样,列表类执行字符串连接操作,而不是加法操作。同样,列表类list也对运算符也对运算符+进行了重进行了重载,使其执行列表连接操作,而不是加法操作。载,使其执行列表连接操作,而不是加法操作。杭州师范大学杭州师范大学 虞歌虞歌 第第4页页Python程序设计基础程序设计基础对象和类对象和类对于用户自定义类,如对于用户自定义类,如Circle:Circle类并没有类并没有对运算符对运算符+进行重载,所以进
3、行重载,所以Circle对象就不能执行对象就不能执行“+”操作(只是操作(只是举例,两个圆做加法运算似乎没啥举例,两个圆做加法运算似乎没啥意义)意义)。杭州师范大学杭州师范大学 虞歌虞歌 第第5页页Python程序设计基础程序设计基础对象和类对象和类在在Python中,重载是通过特殊方法(也称为魔法方法)来实现的中,重载是通过特殊方法(也称为魔法方法)来实现的。如如“+”运算通过特殊方法运算通过特殊方法_add_来实现来实现(两(两个下划线开始,两个下划线结尾)。个下划线开始,两个下划线结尾)。在在Python中,每一个类都默认内置了所有可能的运算符重载特殊方法,只要重写这中,每一个类都默认内
4、置了所有可能的运算符重载特殊方法,只要重写这个特殊方法,就可以实现针对该运算符的重载。个特殊方法,就可以实现针对该运算符的重载。对于对于Circle类,只要重定义特殊方法类,只要重定义特殊方法_add_,对运算符,对运算符+进行重载,就可以实现进行重载,就可以实现Circle对象的对象的“+”操作操作。杭州师范大学杭州师范大学 虞歌虞歌 第第6页页Python程序设计基础程序设计基础对象和类对象和类特殊方法。特殊方法。运算符运算符特殊方法特殊方法描述描述运算符运算符特殊方法特殊方法描述描述+_add_(self, other)加法_gt_(self, other)大于-_sub_(self,
5、other)减法=_ge_(self, other)大于或等于*_mul_(self, other)乘法+x_pos_(self)正数/_truediv_(self, other)除法-x_neg_(self)负数/_floordiv_(self, other)整除abs(x)_abs_(self)绝对值%_mod_(self, other)求余int(x)_int_(self)转换为整数*_pow_(self, other)幂运算float(x)_float_(self)转换为浮点数_lt_(self, other)小于str(x)_str_(self)转换为字符串=_le_(self, other)小于或等于index_getitem_(self, index)下标运算=_eq_(self, other)等于in_contains_(self, value)成员关系!=_ne_(self, other)不等于len(x)_len_(self)元素个数杭州师范大学杭州师范大学 虞歌虞歌 第第7页页Python程序设计基础程序设计基础对象和类对象和类修改修改Circle类,重载关系运算符(类,重载关系运算符(、=),使用半径比),使用半径比较较Circle对象对象大小。大小。杭州师范大学杭州师范大学 虞歌虞歌 第第8页页Python程序设计基础程序设计基础对象和类对象和类