最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中的Dunder方法實(shí)現(xiàn)小結(jié)

 更新時(shí)間:2026年03月09日 09:55:11   作者:老趙全棧實(shí)戰(zhàn)  
本文主要介紹了Python中的Dunder方法實(shí)現(xiàn)小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

?? 今日知識(shí)點(diǎn)

  • 核心主題:深入理解Python中的dunder(魔術(shù))方法
  • 適用場(chǎng)景:面向?qū)ο缶幊獭⒆远x類行為、提升代碼可讀性

?? 什么是Dunder方法?

Dunder方法(Double Underscore Methods)是Python中以雙下劃線開頭和結(jié)尾的特殊方法,例如 __init__、__str__ 等。它們?cè)试S我們自定義類的行為,讓對(duì)象支持運(yùn)算符、打印、迭代等功能。

?? 核心Dunder方法分類與示例

1. 初始化與銷毀

__init__(self, ...)

用途:對(duì)象創(chuàng)建時(shí)自動(dòng)調(diào)用,用于初始化屬性。

class Student:

? ? def __init__(self, name, score):

? ? ? ? self.name = name

? ? ? ? self.score = score

s = Student("張三", 95)

print(s.name) ?# 輸出: 張三

__del__(self)

用途:對(duì)象銷毀前調(diào)用,可用于清理資源。

class FileHandler:

? ? def __del__(self):

? ? ? ? print("文件句柄已釋放")

2. 字符串表示

__str__(self)

用途:定義 print(obj)str(obj) 的輸出。

class Car:

? ? def __init__(self, brand):

? ? ? ? self.brand = brand

  
? ? def __str__(self):

? ? ? ? return f"汽車品牌: {self.brand}"

  
car = Car("特斯拉")

print(car) ?# 輸出: 汽車品牌: 特斯拉

__repr__(self)

用途:開發(fā)者調(diào)試時(shí)顯示的內(nèi)容,建議返回可重構(gòu)對(duì)象的表達(dá)式。

def __repr__(self):

? ? return f'Car("{self.brand}")'

3. 運(yùn)算符重載

__add__(self, other)

用途:定義 + 運(yùn)算符的行為。

class Vector:

? ? def __init__(self, x, y):

? ? ? ? self.x = x

? ? ? ? self.y = y

  
? ? def __add__(self, other):

? ? ? ? return Vector(self.x + other.x, self.y + other.y)

  
v1 = Vector(1, 2)

v2 = Vector(3, 4)

v3 = v1 + v2

print(v3.x, v3.y) ?# 輸出: 4 6

__eq__(self, other)

用途:定義 == 比較邏輯。

def __eq__(self, other):

? ? return self.x == other.x and self.y == other.y

4. 容器行為

__len__(self)

用途:支持 len(obj)。

class MyList:

? ? def __init__(self, data):

? ? ? ? self.data = data

  ? def __len__(self):

? ? ? ? return len(self.data)


ml = MyList([1, 2, 3])

print(len(ml)) ?# 輸出: 3

__getitem__(self, key)

用途:支持 obj[key] 訪問。

def __getitem__(self, index):

? ? return self.data[index]

5. 可調(diào)用對(duì)象

__call__(self, ...)

用途:讓實(shí)例可以像函數(shù)一樣被調(diào)用。

class Multiplier:

? ? def __init__(self, factor):

? ? ? ? self.factor = factor

  


? ? def __call__(self, x):

? ? ? ? return x * self.factor
 


double = Multiplier(2)

print(double(5)) ?# 輸出: 10

?? 實(shí)戰(zhàn)案例:自定義分?jǐn)?shù)類

class Fraction:

? ? def __init__(self, numerator, denominator):

? ? ? ? self.numerator = numerator

? ? ? ? self.denominator = denominator

  


? ? def __str__(self):

? ? ? ? return f"{self.numerator}/{self.denominator}"

  


? ? def __add__(self, other):

? ? ? ? new_num = self.numerator * other.denominator + other.numerator * self.denominator

? ? ? ? new_den = self.denominator * other.denominator

? ? ? ? return Fraction(new_num, new_den)


f1 = Fraction(1, 2)

f2 = Fraction(1, 3)

result = f1 + f2

print(result) ?# 輸出: 5/6

? 注意事項(xiàng)

  • 不要濫用dunder方法,保持代碼清晰易懂
  • 遵循Python慣例,避免自定義非標(biāo)準(zhǔn)的dunder方法
  • 測(cè)試邊界條件,確保方法行為符合預(yù)期

?? 小貼士

  • 學(xué)會(huì)閱讀官方文檔了解經(jīng)常使用的dunder方法
  • 利用IDE提示快速查找相關(guān)方法
  • 多實(shí)踐,從簡(jiǎn)單類開始逐步掌握復(fù)雜用法

到此這篇關(guān)于Python中的Dunder方法實(shí)現(xiàn)小結(jié)的文章就介紹到這了,更多相關(guān)Python Dunder方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python實(shí)現(xiàn)網(wǎng)站表單提交和模板

    Python實(shí)現(xiàn)網(wǎng)站表單提交和模板

    今天小編就為大家分享一篇關(guān)于Python實(shí)現(xiàn)網(wǎng)站表單提交和模板,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • 一文搞懂霍夫曼樹原理及C++/Python/Java實(shí)戰(zhàn)實(shí)現(xiàn)

    一文搞懂霍夫曼樹原理及C++/Python/Java實(shí)戰(zhàn)實(shí)現(xiàn)

    霍夫曼樹是一種用于數(shù)據(jù)壓縮的樹形結(jié)構(gòu),通過構(gòu)建具有最小帶權(quán)路徑長(zhǎng)度的二叉樹,實(shí)現(xiàn)高效的數(shù)據(jù)編碼,這篇文章主要介紹了霍夫曼樹原理及C++/Python/Java實(shí)戰(zhàn)實(shí)現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • python?共現(xiàn)矩陣的實(shí)現(xiàn)代碼

    python?共現(xiàn)矩陣的實(shí)現(xiàn)代碼

    這篇文章主要介紹了python?共現(xiàn)矩陣的實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • python輸出帶顏色字體實(shí)例方法

    python輸出帶顏色字體實(shí)例方法

    在本篇文章里小編給大家整理了關(guān)于python輸出帶顏色字體實(shí)例以及相關(guān)代碼,有需要的朋友們可以學(xué)習(xí)參考下。
    2019-09-09
  • 18個(gè)好用的Python技巧分享(建議收藏)

    18個(gè)好用的Python技巧分享(建議收藏)

    在這篇文章中,我們將討論最常用的一些python技巧,這些技巧都是在日常工作中使用過的簡(jiǎn)單的Trick,小編覺得好東西就是要拿出來和大家一起分享噠
    2023-07-07
  • Python+OpenCV編寫車輛計(jì)數(shù)器系統(tǒng)

    Python+OpenCV編寫車輛計(jì)數(shù)器系統(tǒng)

    本文,我們將使用歐幾里德距離跟蹤和輪廓的概念在 Python 中使用 OpenCV 構(gòu)建車輛計(jì)數(shù)器系統(tǒng),文中的示例代碼講解詳細(xì),感興趣的可以了解一下
    2022-05-05
  • Python上下文管理器深入講解

    Python上下文管理器深入講解

    Python有三大神器,一個(gè)是裝飾器,一個(gè)是迭代器、生成器,最后一個(gè)就是今天文章的主角 -- 「上下文管理器」。上下文管理器在日常開發(fā)中的作用是非常大的,可能有些人用到了也沒有意識(shí)到這一點(diǎn)
    2022-12-12
  • 如何基于python實(shí)現(xiàn)單目三維重建詳解

    如何基于python實(shí)現(xiàn)單目三維重建詳解

    單目三維重建是根據(jù)單個(gè)攝像頭的運(yùn)動(dòng)模擬雙目視覺獲得物體在空間中的三維視覺信息,下面這篇文章主要給大家介紹了關(guān)于如何基于python實(shí)現(xiàn)單目三維重建的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python中使用?zipfile創(chuàng)建文件壓縮工具

    Python中使用?zipfile創(chuàng)建文件壓縮工具

    這篇文章主要介紹了Python中使用zipfile創(chuàng)建文件壓縮工具,通過使用 wxPython 模塊,我們創(chuàng)建了一個(gè)簡(jiǎn)單而實(shí)用的文件壓縮工具,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的ca參考借鑒價(jià)值,需要的朋友可以參考下
    2023-09-09
  • 使用Python腳本操作MongoDB的教程

    使用Python腳本操作MongoDB的教程

    這篇文章主要介紹了使用Python腳本操作MongoDB的教程,MongoDB作為非關(guān)系型數(shù)據(jù)庫(kù)得到了很大的宣傳力度,而市面上的教程一般都是講解JavaScript的腳本操作,本文則是基于Python,需要的朋友可以參考下
    2015-04-04

最新評(píng)論

城市| 康保县| 尚志市| 台江县| 德安县| 清流县| 涞源县| 砀山县| 合川市| 松潘县| 闽侯县| 遵义县| 山西省| 柳林县| 霍山县| 定陶县| 乃东县| 延边| 同心县| 云林县| 原阳县| 安顺市| 屯昌县| 高台县| 大邑县| 巴东县| 鄂州市| 四川省| 永康市| 中卫市| 涟源市| 额敏县| 抚宁县| 道孚县| 承德市| 札达县| 泗阳县| 阿克| 武宁县| 石家庄市| 镇康县|