当前位置: 首页 > news >正文

Python的魔术方法

魔术方法

在 Python 中,魔术方法(也称为特殊方法或杜撰方法)是一组预定义的方法名,它们以双下划线(__)开头和结尾。这些方法提供了对Python内置操作符和行为的定制能力。以下是一些常见的魔术方法及其用途:

1、对象创建和销毁

  • __new__(cls, ...):控制对象的创建过程,返回新创建的对象实例
  • __init__(slef, ...):初始化对象的属性,通常在创建对象后立即调用
  • __del__(self, ...):对象销毁时调用,可以用来释放资源,但不建议依赖它来释放资源,因为它不总是被调用。

2、对象表示

  • __repr__(self):返回对象的官方字符串表示形式,主要用于调试和开发
  • __str__(self):返回对象的可读字符串表示形式,主要用于输出给用户

3、数值运算

  • __add__(self, other):实现加法操作 +
  • __sub__(self, other):实现减法操作 -
  • __mul__(self, other):实现乘法操作 *
  • __truediv__(self, other):实现真除法操作 /
  • __floordiv__(self, other):实现整数除法操作 //
  • __pow__(self, power[, modulo]):实现幂运算操作
  • __neg__(self):实现负号 -
  • __pos__(self):实现正号 +
  • __abs__(self):实现绝对值 abs()

4、比较运算

  • __eq__(self, other):实现等于操作==
  • __ne__(self, other):实现不等于操作 !=
  • __lt__(self, other):实现小于操作 <
  • __le__(self, other):实现小于等于操作 <=
  • __gt__(self, other):实现大于操作 >
  • __ge__(self, other):实现大于等于操作 >=

5、属性访问

  • __getattr__(self, name):当尝试获取不存在的属性时被调用
  • __setattr__(self, name, value):当属性被设置时调用
  • __delattr__(self, name):当属性被删除时调用

6、序列和迭代

  • __len__(self):返回序列的长度
  • __getitem(self, key):获取序列中的元素
  • __setitem__(self, key, value):设置序列中的元素
  • __delitem__(self, key):删除序列中的元素
  • __iter__(self):返回迭代器对象
  • __next__(self):迭代器对象的下一个元素

7、上下文管理器

  • __enter__(self):上下文管理器的开始,返回一个对象
  • __exit__(self, exc_type, exc_val, exc_tb):上下文管理器的结束,处理资源的清理
http://www.lryc.cn/news/604076.html

相关文章:

  • 答题抽奖活动小程序技术复盘
  • ETF期权的交割日对股市有什么影响?
  • 津发科技带你了解皮肤电信号中的SCL与SCR
  • 智慧园区系统引领未来:一场科技与生活的完美融合
  • LaTeX 下载安装保姆级教程
  • MC0244多重堡垒
  • SAP-ABAP:Excel 文件内容解析到 ABAP 内表函数ALSM_EXCEL_TO_INTERNAL_TABLE运用详解
  • Elasticsearch重点
  • 【高等数学】第七章 微分方程——第三节 齐次方程
  • 监控场景视频质量异常修复:陌讯动态增强算法实战解析
  • CVPR 2025 | 华科精测:无需人工标注也能精准识别缺陷类别,AnomalyNCD 实现多类别缺陷自主分类
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-45,(知识点:负反馈的作用,基础理解,干扰和噪声的抑制)
  • 某雷限制解除:轻松获取原始下载链接,支持多任务转换
  • 笔试——Day22
  • 枚举中间位置高级篇
  • 【C++算法】79.BFS解决FloodFill算法_图像渲染
  • K8s集群两者不同的对外暴露服务的方式
  • 2025年JCR一区新算法-回旋镖气动椭圆优化算法Boomerang Aerodynamic Ellipse(BAE)-附Matlab免费代码
  • 小程序发票合并功能升级!发票夹直接选,操作更便捷
  • Python爬虫03_Requests破解百度翻译
  • 三步给小智ESP32S3智能语音硬件接入小程序打通MCP服务
  • ClickHouse MergeTree引擎:从核心架构到三级索引实战
  • 数字ic后端设计从入门到精通13(含fusion compiler, tcl教学)全定制版图设计
  • 通过双网口实现两台设备共享网络与文件传输
  • python线性回归:从原理到实战应用
  • 负载均衡、算法/策略
  • 【iOS】类扩展与关联对象
  • 深入解析RocksDB的MVCC和LSM Tree level
  • Vulnhub-NAPPING: 1.0.1靶机
  • 汉得班翎流程平台V1.20.0正式发布:AI智慧赋能,集成效率跃升!