Python 中的 `__xxx__` 特殊方法:介绍与使用(1)

简介

在 Python 中,__xxx__ 形式的方法被称为魔术方法或特殊方法。这些方法有特殊的名称和用途,通常用于实现某些内置操作。例如,__init__ 用于对象初始化,__add__ 用于实现加法操作。

初始化和表示

  • __init__: 初始化对象。

    python 复制代码
    class MyClass:
        def __init__(self, value):
            self.value = value
  • __repr____str__: 控制对象的字符串表示形式。

    python 复制代码
    class MyClass:
        def __repr__(self):
            return f"MyClass(value={self.value})"

算术运算

  • __add__: 实现加法。

    python 复制代码
    class MyClass:
        def __add__(self, other):
            return MyClass(self.value + other.value)
  • __sub__, __mul__, __truediv__, __floordiv__, __mod__, __pow__: 类似地,这些分别用于减法、乘法、除法、地板除、模运算和幂运算。

比较运算

  • __eq__: 实现等于比较。

    python 复制代码
    class MyClass:
        def __eq__(self, other):
            return self.value == other.value
  • __lt__, __le__, __gt__, __ge__, __ne__: 用于 <, <=, >, >=, != 比较。

容器类型模拟

  • __len__: 获取容器长度。

    python 复制代码
    class MyList:
        def __len__(self):
            return len(self.items)
  • __getitem__, __setitem__, __delitem__: 实现索引、切片和删除操作。

其他

  • __call__: 使对象可调用。

    python 复制代码
    class MyClass:
        def __call__(self, x):
            return self.value * x
  • __getattr__, __setattr__, __delattr__: 自定义属性访问。

注意事项

  • 魔术方法通常不需要直接调用,而是通过相应的内置函数或运算符触发。
  • 不是所有的魔术方法都需要实现,只有在需要特定功能时才去覆写相应的魔术方法。

总结

Python 的 __xxx__ 形式的特殊方法提供了一种非常灵活的方式来自定义对象的行为和操作。了解和掌握这些方法是提高 Python 编程水平的关键之一。

相关推荐
Loo国昌3 分钟前
【LangChain1.0】第九阶段:文档处理工程 (LlamaIndex)
人工智能·后端·python·算法·langchain
抠头专注python环境配置37 分钟前
基于Python与深度学习的智能垃圾分类系统设计与实现
pytorch·python·深度学习·分类·垃圾分类·vgg·densenet
愈努力俞幸运1 小时前
flask 入门 token, headers,cookie
后端·python·flask
梦想是成为算法高手1 小时前
带你从入门到精通——知识图谱(一. 知识图谱入门)
人工智能·pytorch·python·深度学习·神经网络·知识图谱
用什么都重名1 小时前
Conda 虚拟环境安装配置路径详解
windows·python·conda
阿也在北京1 小时前
基于Neo4j和TuGraph的知识图谱与问答系统搭建——胡歌的导演演员人际圈
python·阿里云·知识图谱·neo4j
计算机徐师兄1 小时前
Python基于知识图谱的胆囊炎医疗问答系统(附源码,文档说明)
python·知识图谱·胆囊炎医疗问答系统·python胆囊炎医疗问答系统·知识图谱的胆囊炎医疗问答系统·python知识图谱·医疗问答系统
北冥码鲲1 小时前
【保姆级教程】从零入手:Python + Neo4j 构建你的第一个知识图谱
python·知识图谱·neo4j
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+大模型音乐推荐系统 音乐数据分析 音乐可视化 音乐爬虫 知识图谱 大数据毕业设计
人工智能·hadoop·爬虫·python·数据分析·知识图谱·课程设计