全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)常見(jiàn)問(wèn)題正文

列出Python中幾種魔法方法并簡(jiǎn)要介紹用途

更新時(shí)間:2023-11-13 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在Python中,魔法方法(magic methods)是以雙下劃線(__)開(kāi)頭和結(jié)尾的特殊方法,用于實(shí)現(xiàn)類(lèi)的特定行為。這些方法也被稱(chēng)為“雙下劃線方法”或“特殊方法”。以下是一些常用的魔法方法及其簡(jiǎn)要介紹:

  1.__init__(self, ...):

  初始化方法。當(dāng)一個(gè)對(duì)象被創(chuàng)建時(shí)調(diào)用,用于設(shè)置對(duì)象的初始狀態(tài)。

  2.__str__(self):

  字符串表示方法。返回一個(gè)對(duì)象的可打印字符串表示,通過(guò)str(obj)調(diào)用。

  3.__repr__(self):

  用于生成對(duì)象的“官方”字符串表示。通過(guò)repr(obj)調(diào)用,通常用于開(kāi)發(fā)和調(diào)試。

  4.__len__(self):

  返回對(duì)象的長(zhǎng)度。通過(guò)len(obj)調(diào)用。

  5.__getitem__(self, key):

  定義對(duì)象的索引操作,使對(duì)象可以像序列一樣被索引。通過(guò)obj[key]調(diào)用。

  6.__setitem__(self, key, value):

  定義對(duì)象的索引賦值操作,使對(duì)象可以像序列一樣被修改。通過(guò)obj[key] = value調(diào)用。

  7.__delitem__(self, key):

  定義對(duì)象的索引刪除操作,使對(duì)象可以像序列一樣被刪除。通過(guò)del obj[key]調(diào)用。

1699843406119_python中常見(jiàn)的魔法方法及用途.jpg

  8.__iter__(self):

  返回一個(gè)迭代器對(duì)象,使對(duì)象可以被迭代。

  9.__next__(self):

  定義迭代器的下一個(gè)元素。通過(guò)next(obj)調(diào)用。

  10.__call__(self, ...):

  使對(duì)象可調(diào)用。通過(guò)obj()調(diào)用對(duì)象本身,類(lèi)似于函數(shù)調(diào)用。

  11.__enter__(self) 和 __exit__(self, exc_type, exc_value, traceback):

  用于支持上下文管理器。with語(yǔ)句中的代碼塊執(zhí)行前調(diào)用__enter__,執(zhí)行后調(diào)用__exit__。

  12.__eq__(self, other):

  定義對(duì)象的相等性。通過(guò)obj == other調(diào)用。

  13.__ne__(self, other):

  定義對(duì)象的不等性。通過(guò)obj != other調(diào)用。

  這些是只是一小部分魔法方法,Python中還有其他許多魔法方法,用于實(shí)現(xiàn)各種不同的特殊行為。了解和使用這些方法可以讓我們更靈活地定制類(lèi)的行為。

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