python 魔术方法备忘录

news2024/11/19 1:45:57

python 魔术方法备忘录 网上收集了一些,列出了比较常用的,特别是第一张。
在这里插入图片描述

在这里插入图片描述

Python中的魔术方法(Magic Methods),也被称为特殊方法(Special Methods)或双下划线方法(Dunder Methods),是以双下划线开头和结尾的方法。这些方法让我们能够实现许多特殊的操作,例如算术运算、字符串表示、对象比较等。以下是一些常见的Python魔术方法及其用途:

1. 初始化和表示

  • __init__(self, ...):对象初始化方法(构造函数),在创建对象时调用。
  • __del__(self):对象销毁方法(析构函数),在对象被删除时调用。
  • __repr__(self):返回对象的官方字符串表示,通常可以通过eval函数重新创建该对象。
  • __str__(self):返回对象的非正式字符串表示,通常用于打印对象。

2. 容器和迭代

  • __len__(self):返回对象的长度,适用于内置函数len()
  • __getitem__(self, key):获取指定键的值,用于索引操作。
  • __setitem__(self, key, value):设置指定键的值。
  • __delitem__(self, key):删除指定键的值。
  • __iter__(self):返回迭代器对象,定义对象的迭代行为。
  • __next__(self):返回迭代器的下一个值。

3. 算术运算

  • __add__(self, other):实现加法运算。
  • __sub__(self, other):实现减法运算。
  • __mul__(self, other):实现乘法运算。
  • __truediv__(self, other):实现除法运算。
  • __floordiv__(self, other):实现整数除法运算。
  • __mod__(self, other):实现取模运算。
  • __pow__(self, other):实现幂运算。

4. 反向运算

  • __radd__(self, other):实现反向加法运算。
  • __rsub__(self, other):实现反向减法运算。
  • __rmul__(self, other):实现反向乘法运算。
  • __rtruediv__(self, other):实现反向除法运算。
  • __rfloordiv__(self, other):实现反向整数除法运算。
  • __rmod__(self, other):实现反向取模运算。
  • __rpow__(self, other):实现反向幂运算。

5. 比较运算

  • __eq__(self, other):实现等于运算。
  • __ne__(self, other):实现不等于运算。
  • __lt__(self, other):实现小于运算。
  • __le__(self, other):实现小于等于运算。
  • __gt__(self, other):实现大于运算。
  • __ge__(self, other):实现大于等于运算。

6. 类型转换

  • __int__(self):将对象转换为整数。
  • __float__(self):将对象转换为浮点数。
  • __complex__(self):将对象转换为复数。
  • __bool__(self):将对象转换为布尔值。
  • __index__(self):实现整数类型转换,适用于切片操作。

7. 属性访问

  • __getattr__(self, name):在属性不存在时调用。
  • __getattribute__(self, name):访问任意属性时调用。
  • __setattr__(self, name, value):设置任意属性时调用。
  • __delattr__(self, name):删除任意属性时调用。

8. 上下文管理

  • __enter__(self):进入上下文管理器时调用。
  • __exit__(self, exc_type, exc_value, traceback):退出上下文管理器时调用。

9. 调用对象

  • __call__(self, ...):使对象可以像函数一样被调用。

这些魔术方法可以让我们自定义对象的行为,使其更加符合我们需要的操作方式。通过重载这些方法,我们可以让对象支持各种操作符、内置函数和特定行为。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811778.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开放式耳机哪个品牌质量比较好?2024热门王炸品牌推荐!

开放式耳机市场繁杂,品质参差不齐。网红推荐、广告轰炸,让人眼花缭乱。但音频工程师告诉你,音质和舒适度才是关键。我根据多款开放式耳机测评结果,为大家提供选购指南,助你避开陷阱,找到心仪之选。 1、购买…

老版_zabbix安装与grafana可视化的安装(zabbix插件4.1.4)

grafana()的安装 查询、可视化和理解数据,并获取数据警报,无论数据存储在何处。在 Grafana,您可以通过美观、灵活的数据面板创建、探索和共享所有数据。 1. 网络下载安装 [itwisenode2 ]$ cd /opt/software/ #进入下载目录 #下载wegt安装命…

设计模式学习(二)工厂模式——工厂方法模式

设计模式学习(二)工厂模式——工厂方法模式 前言工厂方法模式简介示例优点缺点使用场景 前言 前一篇文章介绍了简单工厂模式,提到了简单工厂模式的缺点(违反开闭原则,扩展困难),本文要介绍的工…

地面沉降数值模拟实践技术应用与案例分析教程

原文链接:地面沉降数值模拟实践技术应用与案例分析教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247606571&idx4&sn426fd43d2f9a21e3b550c6b5da0be860&chksmfa8260cccdf5e9da7af49e796287d3756cc7052f3be17b01a0adac9c2caf2e1e6680bde…

爱普生SMD3225贴片晶振升级版TSX-3225

爱普生有一款外形尺寸3.2*2.5mm的无源贴片晶振,型号TSX-3225,也是非常直观的能从型号分辨其封装尺寸大小的,被广泛应用于便携式的无线传输设备,同时,这也是一款非常成熟的产品,毕竟SMD3225封装是目前市场主…

量产导入 | KGD 是什么?

文章目录 KGD 是什么?认识KGD定义、功能与应用实例【白话文解析】Known Good「Die」何谓良品裸晶粒 (KGD/KGD Die)?解读KGD产业应用为什么大家纷纷采用KGD? 一窥KGD与芯片封测大趋势 KGD 是什么?认识KGD定义…

AMEYA360代理品牌:ROHM开发出世界超小CMOS运算放大器,适用于智能手机和小型物联网设备等应用

全球知名半导体制造商ROHM(总部位于日本京都市)开发出一款超小型封装的CMOS运算放大器“TLR377GYZ”,该产品非常适合在智能手机和小型物联网设备等应用中放大温度、压力、流量等的传感器检测信号。 智能手机和物联网终端越来越小型化,这就要求搭载的元器…

GenAI-Arena:首个多模态生成 AI 排名开放平台

生成式 AI 指的是能够生成新内容(如图像、视频、文本等)的人工智能技术。近年来,生成式 AI 在图像和视频生成领域取得了突破性进展,例如: 艺术创作:生成式 AI 可以根据文本描述生成各种风格的艺术作品&…

汽车EDI:波森Boysen EDI项目案例

企业A作为Boysen 的供应商,为了响应Boysen的号召,需要与其实现EDI对接。由于企业A此前并没有EDI项目的实施经验,对EDI项目的实施流程、技术要求等内容不知道应该从何下手。 为了实现EDI对接意味着企业A需要具备自己的EDI系统,从而…

jdk8连接sqlserver数据库

这里写目录标题 解决方案:1.进入jdk的安装目录:2. 删除TLSv1、TLSv1.1、3DES_EDE_CBC 删除3.jdk、jre下面的security都需要删除![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/d93467a91c8d47c2a4b95842e34a9ef1.png) 报错原因:The server selected protocol versi…

应急加固-网站入侵后应急流程

实验需求: bugku的在线实验平台,找到黑客入侵的方式,并确定黑客入侵的ip地址、首次webshell的密码、找到webshell并删除、找到黑客留下的后门中黑客服务器的ip及端口、删除定时任务和脚本、找到黑客添加的账号并删除、修复mysql的getshell漏…

【ARM Cache 及 MMU 系列文章 1.4 -- 如何判断 L3 Cache 是否实现】

文章目录 Cluster Configuration Register代码实现什么是Single-Threaded Core?什么是PE(Processor Execution units)?Single-Threaded Core与PE的关系对比多线程(Multithreading)Cluster Configuration Register 同 L2 Cache 判断方法类似,ARMv9 中也提供了一个自定义…

安装docker+mysql的一些坑

yum -y install docker 提示missing signature 参考这里 https://www.8a.hk/news/content/8235.html 因为docker客户端太老了 systemctl enable docker systemctl start docker systemctl status docker 显示activate基本没有问题 docker pull 总是io timeout docker pull m…

【Vue】getters

除了state之外,有时我们还需要从state中筛选出符合条件的一些数据,这些数据是依赖state的,此时会用到getters getters就类似于属性中的计算属性 这个getter只有获取,如果需要设置修改,还是需要经过mutations getters里…

使用Langchain与ChatGLM实现本地知识库(二)

前言 大语言模型也只是将用户提供的大规模数据集训练而来,也并非万能的什么都知道,特别是一些小众知识、内部数据或私密的个人数据等,此时ChatGLM3肯定会胡乱回答就是ChatGPT4也不一定能给出满意回答;不少公司、个人都有自己的知…

可视化数据科学平台在信贷领域应用系列二:数据清洗

上一篇文章中,某互联网银行零售信贷风险建模专家使用数据科学平台Altair RapidMiner——完成了数据探索工作,《可视化数据科学平台在信贷领域应用系列一:数据探索》。本次这位建模专家再次和大家分享数据准备的第二步骤,数据清洗。…

什么是单片机?单片机的详解

单片机(Microcontroller Unit,简称 MCU)是一种集成了处理器、存储器、输入/输出接口和其他外设功能的微型计算机系统。它可以用于各种应用领域,如嵌入式系统、自动化控制、通信设备、家电、汽车电子等。 单片机的基本结构 以下是…

限流器设计思路(浅入门)

限流器(Rate Limiter)是一种用于控制系统资源利用率和质量的重要机制。它通过限制单位时间内可以执行的操作数量,从而防止系统过载和保护服务的可靠性。在程序设计中,可以使用多种方式来实现限流器,下面是几个常见方案的介绍: 令牌…

这三款很实用的工具,助你事半功倍!

AllDup——删除重复文件的工具 AllDup是一款用于删除电脑内重复文件的工具,避免重复占用电脑的存储空间,支持搜索整个文件夹中的重复文件或者使用对比功能,查询出不同文件夹中相同的文件。 使用排除功能,可以过滤掉某些不需要搜索…

SpringCloudAlibaba组件集成

SpringCloudAlibaba组件集成 Nacos服务注册与发现 1.Nacos认识与安装 1.1.什么是Nacos Nacos和Eureka有着相同的能力,甚至更为强大,作为Dubbo 生态系统中重要的注册中心实现。官方对它有如下定义: Nacos致力于帮助您发现,配置…