首頁(yè)常見問題正文

Python的魔法方法是什么?

更新時(shí)間:2023-02-28 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  Python中的魔法方法(Magic Methods),也稱為雙下劃線方法(Dunder Methods),是特殊方法,其名稱以雙下劃線開頭和結(jié)尾,例如__init__、__str__、__add__等。這些方法提供了一種使Python對(duì)象能夠使用內(nèi)置函數(shù)和語言結(jié)構(gòu)的方式。

  以下是一些常用的Python魔法方法:

  __init__(self, ...): 初始化一個(gè)對(duì)象,在創(chuàng)建對(duì)象時(shí)調(diào)用。

  __str__(self):返回一個(gè)描述對(duì)象的字符串,可以使用str(obj)調(diào)用。

  __repr__(self): 返回一個(gè)表示對(duì)象的字符串,可以使用repr(obj)調(diào)用。

  __len__(self):返回對(duì)象的長(zhǎng)度,可以使用len(obj)調(diào)用。

  __getitem__(self, key):獲取對(duì)象中指定鍵的值,可以使用obj[key]調(diào)用。

  __setitem__(self, key, value):設(shè)置對(duì)象中指定鍵的值,可以使用obj[key] = value調(diào)用。

  __delitem__(self, key): 刪除對(duì)象中指定鍵的值,可以使用del obj[key]調(diào)用。

  __iter__(self):返回一個(gè)可迭代對(duì)象,可以使用for ... in obj循環(huán)迭代調(diào)用。

  __next__(self):返回下一個(gè)迭代器對(duì)象,可以使用next(obj)調(diào)用。

  __add__(self, other): 定義加法運(yùn)算符,可以使用obj1 + obj2調(diào)用。

  __sub__(self, other):定義減法運(yùn)算符,可以使用obj1 - obj2調(diào)用。

  __mul__(self, other):定義乘法運(yùn)算符,可以使用obj1 * obj2調(diào)用。

  __div__(self, other):定義除法運(yùn)算符,可以使用obj1 / obj2調(diào)用。

  __eq__(self, other): 定義相等運(yùn)算符,可以使用obj1 == obj2調(diào)用。

  __ne__(self, other):定義不等運(yùn)算符,可以使用obj1 != obj2調(diào)用。

  __lt__(self, other): 定義小于運(yùn)算符,可以使用obj1 < obj2調(diào)用。

  __gt__(self, other):定義大于運(yùn)算符,可以使用obj1 > obj2調(diào)用。

  通過實(shí)現(xiàn)這些魔法方法,可以讓自定義的Python對(duì)象具有類似內(nèi)置類型的行為和特性。

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!