Python知识分享网 - 专业的Python学习网站 学Python,上Python222
Python 魔法方法
匿名网友发布于:2023-09-12 11:03:30
(侵权举报)

Python 7天快速入门完整视频教程https://www.bilibili.com/video/BV1o84y1Z7J1

 

   魔法方法

 

Python的魔法方法,也称为特殊方法或双下划线方法,是一种特殊的方法,用于在类中实现一些特殊的功能。这些方法的名称始终以双下划线开头和结尾,例如initrepradd

 

Python    魔法方法  图1

 

__str__方法,定义对象的显示字符串,默认是对象内存地址,我们可以通过重写str方法,显示我们需要的数据。

 

# 定义人类
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))

 

运行输出:

 

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

 

重写str方法:

 

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

 

运行输出:

 

姓名:张三,年龄:21
姓名:张三,年龄:21

 

eq 定义对象间的等于操作,当使用==比较两个对象时被调用。

 

# 定义人类
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)

# 在创建一个对象 lisi
lisi = Person("李四", 21)
print(lisi)
print(zhangsan == lisi)

 

作业,通过重写魔法方法,实现 zhangsan < lisi 以及 zhangsan >=lisi 这两个对象通过属性age来判断大小,返回布尔类型。

 

 

转载自: