【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__等,可用于实现各种自定义行为和操作。通过合理地使用这些魔术方法,可以创建具有丰富功能和良好接口的自定义对象。

相关推荐
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+Stable Diffusion打造“英歌舞财神”IP,解锁“马到成功”等爆款情绪营销文案设计
开发语言·人工智能·python·prompt·aigc
benchmark_cc3 小时前
用 Python 拉 A 股全市场实时快照:Notebook 请求、结果校验与易错点
python·数据分析·pandas·量化交易·股票数据·quantdash
伞伞悦读3 小时前
【第70期】Adam二阶矩不是方差:偏差校正、动量与AdamW完整实验
python
海绵宝宝的月光宝盒4 小时前
14-AutoCAD-阵列命令应用与案例实战(AR)
经验分享·笔记·自动化·课程设计·制造·学习方法·cad
外收内放4 小时前
Python基础语法练习题(73)
java·前端·python
锋行天下4 小时前
Langgraph HITL 中断运行,用户输入后输出打字效果
人工智能·python
时早玖沐5 小时前
给 AstrBot 写一个天气推送插件:12 次提交、6 个坑
python·开源·ai编程
触底反弹5 小时前
🚀 FastAPI 五大重难点深度剖析:从 500 报错到彻底搞懂 Depends、Pydantic 与 SQLAlchemy
python·fastapi
cpolar技术支持5 小时前
网关加 gzip,同时开启 chunked,下载回来的包解不开:把两层编码的解压顺序与长度核对做成只读页
python·http·网络编程·socket·内网穿透
小嘉丶学长5 小时前
Day14 · 字典与集合
java·开发语言·网络·python·学习·1024程序员节