python的內建方法

2021-07-11 12:44:26 字數 1852 閱讀 3185

最近需要重新定義類,老是會忘記python內建方法的的作用和名稱,mark一下加深一下記憶。

基本上python的常見內建方法如下面所示:

內建方法說明

__init__(self,...)

初始化物件,在建立新物件時呼叫

__del__(self)

釋放物件,在物件被刪除之前呼叫

__new__(cls,*args,**kwd)

例項的生成操作

__str__(self)

在使用print語句時被呼叫

__getitem__(self,key)

獲取序列的索引key對應的值,等價於seq[key]

__len__(self)

在呼叫內聯函式len()時被呼叫

__cmp__(stc,dst)

比較兩個物件src和dst

__getattr__(s,name)

獲取屬性的值,等價於點呼叫(例如a.(...)假如重定義乙個字典類,則a[b]等價於a.b))

__setattr__(s,name,value)

設定屬性的值,等價於點設定(a[b]=1,a.b=1)

__delattr__(s,name)

刪除name屬性

__getattribute__()

__getattribute__()功能與__getattr__()類似

__gt__(self,other)

判斷self物件是否大於other物件

__lt__(slef,other)

判斷self物件是否小於other物件

__ge__(slef,other)

判斷self物件是否大於或者等於other物件

__le__(slef,other)

判斷self物件是否小於或者等於other物件

__eq__(slef,other)

判斷self物件是否等於other物件

__call__(self,*args)

把例項物件作為函式呼叫

下面po一下我重定義字典的**

class dict(dict):

'''****** dict but support access as x.y style.

'''#初始化已例項化後的所有父類物件,方便後續使用或擴充套件父類中的行為:

def __init__(self, names=(), values=(), **kw):

super(dict, self).__init__(**kw)

#zip([seql, ...])接受一系列可迭代物件作為引數,將物件中對應的元素打包成乙個個tuple(元組),然後返回由這些tuples組成的list(列表)。

# 若傳入引數的長度不等,則返回list的長度和引數中長度最短的物件相同。

for k, v in zip(names, values):

self[k] = v

#屬性動態化處理;當使用點號獲取類例項屬性時,如果屬性不存在就自動呼叫__getattr__方法。

def __getattr__(self, key): #此處為:提取字典內,指定key值的value,沒找到則丟擲異常。

try:

return self[key]

except keyerror:

raise attributeerror(r"'dict' object has no attribute '%s'" % key)

#屬性賦值;當設定類例項屬性時自動呼叫。

def __setattr__(self, key, value): #此處為:設定字典對值。

self[key] = value

python 內建 Python內建方法大全

新增元素 集合.add 集合.update 一次新增多個值 集合隨機刪除 集合.pop 集合刪除指定元素 集合.remove 沒有找到會奔潰 集合.discard 沒有找到不會奔潰 移除空白 strip 取字串兩邊空格 lstrip 取字串左邊空格 rstrip 取字串右邊空格 括號中可以新增引數指...

python內建 python內建方法總結

注意 內建函式id 可以返回乙個物件的身份,返回值為整數。這個整數通常對應與該物件在記憶體中的位置,但這與python的具體實現有關,不應該作為對身份的定義,即不夠精準,最精準的還是以記憶體位址為準。is運算子用於比較兩個物件的身份,等號比較兩個物件的值,內建函式type 則返回乙個物件的型別 以下...

python內建方法

內建方法 說明 init self,初始化物件,在建立新物件時呼叫 del self 釋放物件,在物件被刪除之前呼叫 new cls,args,kwd 例項的生成操作 str self 在使用print語句時被呼叫 getitem self,key 獲取序列的索引key對應的值,等價於seq key...