更新時間:2023-11-13 來源:黑馬程序員 瀏覽量:
在Python中,魔法方法(magic methods)是以雙下劃線(__)開頭和結(jié)尾的特殊方法,用于實(shí)現(xiàn)類的特定行為。這些方法也被稱為“雙下劃線方法”或“特殊方法”。以下是一些常用的魔法方法及其簡要介紹:
1.__init__(self, ...):
初始化方法。當(dāng)一個對象被創(chuàng)建時調(diào)用,用于設(shè)置對象的初始狀態(tài)。
2.__str__(self):
字符串表示方法。返回一個對象的可打印字符串表示,通過str(obj)調(diào)用。
3.__repr__(self):
用于生成對象的“官方”字符串表示。通過repr(obj)調(diào)用,通常用于開發(fā)和調(diào)試。
4.__len__(self):
返回對象的長度。通過len(obj)調(diào)用。
5.__getitem__(self, key):
定義對象的索引操作,使對象可以像序列一樣被索引。通過obj[key]調(diào)用。
6.__setitem__(self, key, value):
定義對象的索引賦值操作,使對象可以像序列一樣被修改。通過obj[key] = value調(diào)用。
7.__delitem__(self, key):
定義對象的索引刪除操作,使對象可以像序列一樣被刪除。通過del obj[key]調(diào)用。
8.__iter__(self):
返回一個迭代器對象,使對象可以被迭代。
9.__next__(self):
定義迭代器的下一個元素。通過next(obj)調(diào)用。
10.__call__(self, ...):
使對象可調(diào)用。通過obj()調(diào)用對象本身,類似于函數(shù)調(diào)用。
11.__enter__(self) 和 __exit__(self, exc_type, exc_value, traceback):
用于支持上下文管理器。with語句中的代碼塊執(zhí)行前調(diào)用__enter__,執(zhí)行后調(diào)用__exit__。
12.__eq__(self, other):
定義對象的相等性。通過obj == other調(diào)用。
13.__ne__(self, other):
定義對象的不等性。通過obj != other調(diào)用。
這些是只是一小部分魔法方法,Python中還有其他許多魔法方法,用于實(shí)現(xiàn)各種不同的特殊行為。了解和使用這些方法可以讓我們更靈活地定制類的行為。