操作符重载
二元运算符 特殊方法 + __add__,__radd__ - __sub__,__rsub__ * __mul__,__rmul__ / __div__,__rdiv__,__truediv__,__rtruediv__ // __floordiv__,__rfloordiv__ % __mod__,__rmod__ ** __pow__,__rpow__ << __lshift__,__rlshift__ >> __rshift__,__rrshift__ & __and__,__rand__ ^ __xor__,__rxor__ | __or__,__ror__ += __iaddr__ -= __isub__ *= __imul__ /= __idiv__,__itruediv__ //= __ifloordiv__ %= __imod__ **= __ipow__ <<= __ilshift__ >>= __irshift__ &= __iand__ ^= __ixor__ |= __ior__ == __eq__ !=,<> __ne__ > __get__ < __lt__ >= __ge__ <= __le__
Method Overloads Call for __init__ 构造函数 X=Class() __del__ 析构函数 对象销毁 __add__ + X+Y,X+=Y __or__ | X|Y,X|=Y __repr__ 打印转换 print X,repr(X) __str__ 打印转换 print X,str(X) __call__ 调用函数 X() __getattr_ 限制 X.undefine __setattr__ 取值 X.any=value __getitem__ 索引 X[key], __len__ 长度 len(X) __cmp__ 比较 X==Y,X<Y __lt__ 小于 X<Y __eq__ 等于 X=Y __radd__ Right-Side + +X __iadd__ += X+=Y __iter__ 迭代 For In
python中的列表模型
列表或者说数组是特殊的对象,一个栈内存中的变量对应着堆内存中的两个对象。
我们可以通过列表的删除操作帮助我们理解python列表模型
li = [1,2,3,4,5,6]
# 1.使用del删除对应下标的元素
del li[2]
# li = [1,2,4,5,6]
# 2.使用.pop()删除最后一个元素
li.pop()
# li = [1,2,4,5]
# 3.删除指定值的元素
li.remove(4)
# li = [1,2,5]
# 4.使用切片来删除
li = li[:-1]
# li = [1,2]
# !!!切忌使用这个方法,如果li被作为参数传入函数,
# 那么在函数内使用这种删除方法,将不会改变原list
li = [1,2,3,4,5,6] def delete(li, index): li = li[:index] + li[index+1:] delete(li, 3) print li # 会输出[1,2,3,4,5,6]
原因如图所示。
对于普通概念,python只需要两个部分就可以表示了。但是对于一个数组,在python语言中表示为三个部分: