python 魔術方法

2021-07-29 20:09:00 字數 1959 閱讀 8678

魔術方法 呼叫方式 解釋

__new__(cls [,...])             instance = myclass(arg1, arg2)  __new__ 在建立例項的時候被呼叫

__init__(self [,...]) instance = myclass(arg1, arg2) __init__ 在建立例項的時候被呼叫

__cmp__(self, other) self == other, self > other, 等。在比較的時候呼叫

__pos__(self) +self 一元加運算子

__neg__(self) -self 一元減運算子

__invert__(self) ~self 取反運算子

__index__(self) x[self] 物件被作為索引使用的時候

__nonzero__(self) bool(self) 物件的布林值

__getattr__(self, name) self.name # name 不存在 訪問乙個不存在的屬性時

__setattr__(self, name, val) self.name = val 對乙個屬性賦值時

__delattr__(self, name) del self.name 刪除乙個屬性時

__getattribute(self, name) self.name 訪問任何屬性時

__getitem__(self, key) self[key] 使用索引訪問元素時

__setitem__(self, key, val) self[key] = val 對某個索引值賦值時

__delitem__(self, key) del self[key] 刪除某個索引值時

__iter__(self) for x in

self 迭代時

__contains__(self, value) value in

self, value not

inself使用 in 操作測試關係時

__concat__(self, value) self + other 連線兩個物件時

__call__(self [,...]) self(args) 「呼叫」物件時

__enter__(self) with

self

as x: with 語句環境管理

__exit__(self, exc, val, trace) with

self

as x: with 語句環境管理

__getstate__(self) pickle.dump(pkl_file, self) 序列化

__setstate__(self) data = pickle.load(pkl_file) 序列化

預設過載方法示例**:

Python魔術方法

參考文章 python 魔術方法指南 魔術方法,顧名思義是一種可以給物件 類 增加魔法的特殊方法,它們的表示方法一般是用雙下劃線包圍 如 init from os.path import join class fileobject 給檔案物件進行包裝從而確認在刪除時檔案流關閉 def init se...

Python 魔術方法

usr bin env python coding utf 8 author ray time 2018 12 6 魔術方法例項 init 建構函式,在生成物件時呼叫,用來初始化值 del 析構函式,釋放物件時使用 比如編輯檔案,把關閉檔案的操作寫在此方法中,程式結束時就會關閉軟體 str 使用pr...

Python 魔術方法

與運算子無關 類別方法名 數值轉換 abs bool complex int float hash index 模擬集合 len getitem setitem delitem contains 迭代列舉 iter reversed next 可呼叫模型 call 上下文管理 enter exit ...