Python操作符重载总结&列表模型

操作符重载

二元运算符    特殊方法
+    __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语言中表示为三个部分:

原文地址:https://www.cnblogs.com/xinchrome/p/5068996.html