• Python 的内置方法


    Python 中的类提供了一些内置方法(也称为魔术方法或特殊方法),它们以双下划线开头和结尾,用于实现特定的行为和功能。这些内置方法可以被重写,以定制类的行为,使其适应特定的需求。以下是一些常用的类内置方法及其功能:

    __init__(self, ...): 构造函数,用于初始化类的实例对象,在创建对象时自动调用。
    __str__(self): 返回对象的字符串表示,可通过 str(obj) 或 print(obj) 调用。
    __repr__(self): 返回对象的可打印字符串表示,通常用于调试和开发。
    __len__(self): 返回对象的长度,可通过 len(obj) 调用。
    __getitem__(self, key): 获取对象的指定索引或键对应的值,可通过 obj[key] 访问。
    __setitem__(self, key, value): 设置对象的指定索引或键对应的值,可通过 obj[key] = value 赋值。
    __delitem__(self, key): 删除对象的指定索引或键对应的值,可通过 del obj[key] 删除。
    __iter__(self): 返回一个迭代器对象,可通过 iter(obj) 获得迭代器。
    __next__(self): 返回迭代器的下一个值,可通过 next(obj) 调用。
    __contains__(self, item): 判断对象是否包含指定的元素,可通过 item in obj 判断。
    __call__(self, ...): 将对象作为函数调用,可通过 obj(...) 调用。
    __eq__(self, other): 定义对象的等于比较操作,用于判断两个对象是否相等。
    __lt__(self, other): 定义对象的小于比较操作,用于判断对象的顺序关系。
    __gt__(self, other): 定义对象的大于比较操作,用于判断对象的顺序关系。
    __add__(self, other): 定义对象的加法操作,用于实现对象的加法运算。
    __sub__(self, other): 定义对象的减法操作,用于实现对象的减法运算。

    通过重写这些内置方法,我们可以自定义类的行为,使其具有更多的灵活性和定制性。这些内置方法提供了类与其他 Python 内置类型的一致性,使我们能够以一种统一的方式与对象进行交互。

    下面的示例中,重写了 __init____str__ 和 __add__ 方法,分别用于初始化对象、返回对象的字符串表示和定义对象的加法操作。

    1. class MyClass:
    2. def __init__(self, value):
    3. self.value = value
    4. def __str__(self):
    5. return f"MyClass(value={self.value})"
    6. def __add__(self, other):
    7. if isinstance(other, MyClass):
    8. return MyClass(self.value + other.value)
    9. elif isinstance(other, int):
    10. return MyClass(self.value + other)
    11. else:
    12. raise TypeError("Unsupported operand type")
    13. obj1 = MyClass(5)
    14. obj2 = MyClass(10)
    15. print(obj1) # 输出 "MyClass(value=5)"
    16. print(obj1 + obj2) # 输出 "MyClass(value=15)"
    17. print(obj1 + 3) # 输出 "MyClass(value=8)"
  • 相关阅读:
    Redis部署方式(三)主从模式
    Vulnhub: Hogwarts: Bellatrix靶机
    简单实现spring的set依赖注入
    文心一言 VS 讯飞星火 VS chatgpt (106)-- 算法导论10.1 4题
    6 java的基本数据类型和引用数据类型和基本数据类型的对象
    在Windows下Com库的原理以及它与系统的关系?- CoCreateInstance解析
    Filebeat+Kafka+ELK日志分析架构
    【Java】阿拉伯数字转汉字(完全符合中文阅读习惯)(支持所有整数类型)
    想要精通算法和SQL的成长之路 - 受限条件下可到达节点的数目
    Python装饰器(包装函数、拦截函数)
  • 原文地址:https://blog.csdn.net/m0_37738114/article/details/133772438