特殊方法和运算符重载
Python的运算符实际是通过对象的调用实现的
特殊方法:
| 方法 | 说明 | 举例 | 
| __init__ | 构造方法 | 对象创建:P=Person | 
| __del__ | 析构方法 | 对象回收 | 
| __repr__ , __str__ | 打印,转换 | print(a) | 
| __call__ | 函数调用 | a() | 
| __getatter__ | 点号运算 | a.xxx | 
| __getitem__ | 索引运算 | a[key] | 
| __setitem__ | 索引赋值 | a[key] = value | 
| __len__ | 长度 | len(s) | 
每个运算符实际上都对应了相应的方法:
| 运算符 | 特殊方法 | 说明 | 
| + | __add__ | 加法 | 
| - | __sub__ | 减法 | 
| < <= == | __lt__ , __le__ , __eq__ | 比较运算符 | 
| > >= != | __gt__ , __ge__ , __ne__ | |
| | ^ & | __or__ , __xor__ , __and__ | 或,异或,与 | 
| << >> | __lshift__ , __rshift__ | 左移,右移 | 
| * / % // | __mul__ , __truediv__ , __mod__ , __floordiv__ | 乘,浮点除,取余(模),地板除 | 
| ** | __pow__ | 指数 | 
1 class Person: 2 def __init__(self,name): 3 self.name = name 4 5 def __add__(self, other): 6 if isinstance(other,Person): 7 return '{0}--{1}'.format(self.name,other.name) 8 else: 9 print('非同类对象') 10 11 p1 = Person('Xujie') 12 p2 = Person('ian') 13 14 x = p1+p2 15 print(x)

 
