Python知識分享網(wǎng) - 專業(yè)的Python學(xué)習(xí)網(wǎng)站 學(xué)Python,上Python222
Python 魔法方法
匿名網(wǎng)友發(fā)布于:2023-09-12 11:03:30
(侵權(quán)舉報(bào))

Python 7天快速入門完整視頻教程https://www.bilibili.com/video/BV1o84y1Z7J1

 

   魔法方法

 

Python的魔法方法,也稱為特殊方法或雙下劃線方法,是一種特殊的方法,用于在類中實(shí)現(xiàn)一些特殊的功能。這些方法的名稱始終以雙下劃線開頭和結(jié)尾,例如init,repr,add

 

Python    魔法方法  圖1

 

__str__方法,定義對象的顯示字符串,默認(rèn)是對象內(nèi)存地址,我們可以通過重寫str方法,顯示我們需要的數(shù)據(jù)。

 

# 定義人類
class Person:
    # 屬性 姓名
    name = None
    # 屬性 年齡
    age = None

    def __init__(self, name, age):
        self.name = name
        self.age = age


zhangsan = Person("張三", 21)
print(zhangsan)
print(str(zhangsan))

 

運(yùn)行輸出:

 

<__main__.Person object at 0x00000202E61AF950>
<__main__.Person object at 0x00000202E61AF950>

 

重寫str方法:

 

   def __str__(self):
        return f"姓名:{self.name},年齡:{self.age}"

 

運(yùn)行輸出:

 

姓名:張三,年齡:21
姓名:張三,年齡:21

 

eq 定義對象間的等于操作,當(dāng)使用==比較兩個(gè)對象時(shí)被調(diào)用。

 

# 定義人類
class Person:
    # 屬性 姓名
    name = None
    # 屬性 年齡
    age = None

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"姓名:{self.name},年齡:{self.age}"

    def __eq__(self, other):
        return self.age == other.age


zhangsan = Person("張三", 21)
print(zhangsan)

# 在創(chuàng)建一個(gè)對象 lisi
lisi = Person("李四", 21)
print(lisi)
print(zhangsan == lisi)

 

作業(yè),通過重寫魔法方法,實(shí)現(xiàn) zhangsan < lisi 以及 zhangsan >=lisi 這兩個(gè)對象通過屬性age來判斷大小,返回布爾類型。

 

 

轉(zhuǎn)載自: