【Python学习笔记】魔术方法

在Python中,"魔术"方法或魔术函数是指以双下划线(__)开始和结束的特殊方法。这些方法有特殊的含义,通常用于实现类的某些特殊行为。以下是一些常见的魔术方法及其用法的示例:

  1. __init__ - 构造函数,用于初始化新创建的对象:
python 复制代码
class MyClass:
    def __init__(self, value):
        self.value = value

obj = MyClass(5)
print(obj.value)  # 输出: 5
  1. __str__ - 返回对象的字符串表示:
python 复制代码
class MyClass:
    def __str__(self):
        return "MyClass instance"

obj = MyClass()
print(str(obj))  # 输出: MyClass instance
  1. __repr__ - 返回对象的官方字符串表示(通常可以用于重新创建对象):
python 复制代码
class MyClass:
    def __repr__(self):
        return "MyClass()"

obj = MyClass()
print(repr(obj))  # 输出: MyClass()
  1. __eq__ - 实现对象之间的等价比较:
python 复制代码
class MyClass:
    def __init__(self, value):
        self.value = value
    
    def __eq__(self, other):
        return self.value == other.value

obj1 = MyClass(5)
obj2 = MyClass(5)
print(obj1 == obj2)  # 输出: True
  1. __add__ - 实现对象之间的加法运算:
python 复制代码
class MyClass:
    def __init__(self, value):
        self.value = value
    
    def __add__(self, other):
        return MyClass(self.value + other.value)

obj1 = MyClass(5)
obj2 = MyClass(7)
obj3 = obj1 + obj2
print(obj3.value)  # 输出: 12

这些只是魔术方法的一些示例,还有许多其他的魔术方法,例如__getitem____setattr____del__等,可用于实现各种自定义行为和操作。通过合理地使用这些魔术方法,可以创建具有丰富功能和良好接口的自定义对象。

相关推荐
用户8356290780517 小时前
无需 Office:Python 批量转换 PPT 为图片
后端·python
markfeng89 小时前
Python+Django+H5+MySQL项目搭建
python·django
GinoWi9 小时前
Chapter 2 - Python中的变量和简单的数据类型
python
JordanHaidee9 小时前
Python 中 `if x:` 到底在判断什么?
后端·python
ServBay10 小时前
10分钟彻底终结冗长代码,Python f-string 让你重获编程自由
后端·python
闲云一鹤10 小时前
Python 入门(二)- 使用 FastAPI 快速生成后端 API 接口
python·fastapi
Rockbean11 小时前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
曲幽12 小时前
FastAPI + Ollama 实战:搭一个能查天气的AI助手
python·ai·lora·torch·fastapi·web·model·ollama·weatherapi
用户606487671889613 小时前
国内开发者如何接入 Claude API?中转站方案实战指南(Python/Node.js 完整示例)
人工智能·python·api
只与明月听13 小时前
RAG深入学习之Chunk
前端·人工智能·python