【复试 python程序设计 第2版 董付国】python特殊方法与运算符重载
作者:互联网
1. 实例方法
1.1 __add__(self, n)
# -*- coding: utf-8 -*- # 数组类,支持数组与数字之间的四则运算 # 数组之间的 加法运算,内积运算和大小比较 # 数组元素访问和修改 # 成员测试 class MyArray: __value = [] __size = 0 # 判断是否是数字 def __IsNumber(self, n): if (not isinstance(n, int)) and \ (not isinstance(n, float)) and \ (not isinstance(n, complex)): return False else: return True # 初始化 def __init__(self, *args): if not args: self.__value = [] else: for arg in args: if not self.__IsNumber(arg): print('All elements must be numbers') return self.__value = list(args) # 数组中每个元素都与数字n相加,或两个数组相加 def __add__(self, n): if self.__IsNumber(n): b = MyArray() for v in self.__value: b.__value.append(v + n) return b elif isinstance(n, MyArray): if len(n.__value) == len(self.__value): c = MyArray() for i, j in zip(self.__value, n.__value): c.__value.append(i + j) return c else: print('Length not equal') else: print('Not supported')
1.2 __sub__
def __sub__(self, n): if not self.__IsNumber(n): print("not number") return b = MyArray() for v in self.__value: b.__value.append(v - n) return b
1.3 __repr__:可直接输出对象[区别__str__)
如果没有写这个函数:
# 直接使用对象作为语句时调用该函数 def __repr__(self): return repr(self.__value)
1.4 __str__:可直接输出对象
def __str__(self):
return str(self.__value)
标签:__,.__,return,python,self,董付国,value,运算符,def 来源: https://www.cnblogs.com/douzujun/p/12535830.html