1. 程式人生 > >16.語法對照-面向物件(python-java)

16.語法對照-面向物件(python-java)

python每個類都有相同的內建屬性/方法;

1.內建屬性

__class__:獲取例項所在的類;

__bases__:獲取類的所有父類構成元素;

__dict__:

類:包含共享的變數和函式(類屬性,方法等);

例項:包含例項屬性;

__doc__:類文件,help(類或例項)時呼叫;

__name__:類名;

__module__:模組名;

__mro__:方法解析順序;

2.內建方法

2.1生命週期

__new__(cls):負責建立類例項的類方法;

__init__(self):建立物件之後馬上呼叫初始化方法 ;

__del__:析構方法,執行清理動作,不建議操作;(2)

2.2類的表示

__str__:列印時呼叫,如果沒有實現,使用repr;(1)

__repr__:使用類例項或者 print(repr(類例項))呼叫;(1)

__format__(self):類的例項用於字串格式化;

__hash__(self):呼叫hash()時使用(__eq__結合);(3)

__nonzero__(self):呼叫bool()時使用;

__dir__(self):呼叫dir()時使用;

2.3.訪問控制

__getattr__(self, name):訪問不存在的屬性時呼叫;

__delattr__(self, name):刪除name屬性;

__setattr__(self, name, value):設定name屬性;

__getattribute__:屬性訪問攔截器;

2.4.容器相關

__len__(self):返回容器的長度;

__getitem__(self, key):使用self[key]時呼叫;

__setitem__(self, key):使用self[key]賦值時的呼叫;

__iter__(self, key):返回當前容器的一個迭代器;

__reversed__(self):返回一個反轉的序列;

__contains__(self, item):使用in和not in時呼叫;

__missing__(self ,key):訪問字典不存在的鍵時呼叫;

2.5.類關係

__instancecheck__(self, instance):檢查例項;

__subclasscheck__(self, subclass):檢查子類;

2.6.上下文管理器(5)

__enter__:返回值繫結到指定的as語句;

__exit__:退出時的清理程式碼;

2.7.描述符協議

__set__(self, obj, type=None):設定屬性;

__get__(self. obj):獲取屬性;

__delete__(self. obj):對屬性呼叫del時呼叫

2.8.比較

__cmp__(self, other):比較操作符的行為;(7)

__gt__(self,other):大於;

__lt__(slef,other):小於;

__ge__(slef,other):大於或者等於;

__le__(slef,other):小於或者等於;

__eq__(slef,other):等於;(3)

__ne__(self, other):不等於;

2.9.呼叫

__call__(self, *args):把例項物件作為函式呼叫;

2.10.拷貝

__copy__(self):淺拷貝;(4)

__deepcopy__(self, memodict=):深拷貝;(4)

2.11.Pickling(序列化) (8)

__getnewargs__(self):反序列化時傳遞__new__引數;

__getstate__(self):在序列化儲存狀態;

__setstate__(self):在反序列化時傳遞狀態;

__reduce__(self):序列化擴充套件型別(C語言API);

__reduce_ex__(self):__reduce__的相容模式;

2.12.迭代器協議(6)

__next__:返回下一個元素;

__iter__:返回迭代器本身;

2.13.操作符

A. 一元操作符

__pos__(self):取正;

__neg__(self):取負;

__abs__(self):絕對值;

__invert__(self):取反;

__round__(self, n):四捨五入;

__floor__(self):向下取整;

__ceil__(self):向上取整;

__trunc__(self):取距離零最近的整數;

B.算術操作符

__add__(self, other):加法;

__sub__(self, other):減法;

__mul__(self, other):乘法;

__floordiv__(self, other)://操作符的整數除法;

__div__(self, other):/操作符的除法;

__truediv__(self, other):_true_除法;

__mod__(self, other):取餘;

__divmod__(self, other):divmod;

__pow__:**;

__lshift__(self, other):左移位運算子<<;

__rshift__(self, other):右移位運算子>> ;

__and__(self, other):按位與運算子&;

__or__(self, other):按位或運算子|;

__xor__(self, other):按位異或運算子^;

C.反射算術運算子

D.增強賦值運算子

E.型別轉換操作符