【python中的魔法方法有哪些?】

news2024/11/24 17:41:43

在这里插入图片描述

  1. __init__(self, ...): 类的构造函数,用于创建一个类的实例并初始化它的属性。
  2. __str__(self): 返回对象的字符串表示形式,可以用于打印对象或者转化成字符串。
  3. __repr__(self): 返回对象的字符串表示形式,通常是用于开发者调试和查看对象信息。
  4. __len__(self): 返回对象的长度,可以用于集合类型、字符串、元组等。
  5. __getitem__(self, key): 实现通过索引访问对象的值,可以用于序列类型(如列表、元组、字符串)和映射类型(如字典)。
  6. __setitem__(self, key, value): 实现通过索引设置对象的值,可以用于序列类型和映射类型。
  7. __delitem__(self, key): 实现通过索引删除对象的值,可以用于序列类型和映射类型。
  8. __iter__(self): 返回一个迭代器对象,可以用于支持循环遍历对象的元素。
  9. __next__(self): 返回下一个迭代器元素,可以用于支持循环遍历对象的元素。
  10. __contains__(self, item): 实现“in”运算符,可以用于检查一个值是否存在于对象中。
  11. __eq__(self, other): 实现“==”运算符,用于比较两个对象是否相等。
  12. __lt__(self, other): 实现“<”运算符,用于比较两个对象的大小。
  13. __gt__(self, other): 实现“>”运算符,用于比较两个对象的大小。
  14. __le__(self, other): 实现“<=”运算符,用于比较两个对象的大小。
  15. __ge__(self, other): 实现“>=”运算符,用于比较两个对象的大小。
  16. __add__(self, other): 实现“+”运算符,用于将两个对象相加。
  17. __sub__(self, other): 实现“-”运算符,用于将两个对象相减。
  18. __mul__(self, other): 实现“*”运算符,用于将两个对象相乘。
  19. __truediv__(self, other): 实现“/”运算符,用于将两个对象相除。
  20. __floordiv__(self, other): 实现“//”运算符,用于将两个对象整除。
  21. __mod__(self, other): 实现“%”运算符,用于获取两个对象相除的余数。
  22. __pow__(self, other): 实现“**”运算符,用于获取两个对象的幂运算。
  23. __bool__(self): 返回对象的布尔值,用于将对象转化成布尔值
  24. __getattr__(self, name): 在对象上访问一个不存在的属性时调用,可以用于动态创建属性或者进行错误处理。
  25. __setattr__(self, name, value): 设置对象属性的值时调用,可以用于限制属性的访问或者进行特殊处理。
  26. __delattr__(self, name): 删除对象的属性时调用,可以用于进行特殊处理。
  27. __dir__(self): 返回对象的属性列表,可以用于帮助开发者了解对象的属性结构。
  28. __hash__(self): 返回对象的哈希值,可以用于实现自定义的哈希函数。
  29. __call__(self, *args, **kwargs): 使对象可以像函数一样被调用,可以用于实现可调用的对象。
  30. __new__(cls, *args, **kwargs): 用于创建对象并返回新的对象实例。
  31. __del__(self): 用于销毁对象并释放资源。
  32. __enter__(self): 用于在with语句中执行一些初始化操作。
  33. __exit__(self, exc_type, exc_value, traceback): 用于在with语句中执行一些清理操作。
  34. __index__(self): 用于将对象转化成整数索引。
  35. __float__(self): 用于将对象转化成浮点数。
  36. __int__(self): 用于将对象转化成整数。
  37. __round__(self, ndigits=None): 用于对对象进行四舍五入。
  38. __trunc__(self): 用于对对象进行截断操作。
  39. __format__(self, format_spec): 用于将对象格式化成指定的字符串格式。
  40. __len_hint__(self): 返回对象的长度的估计值。
  41. __reversed__(self): 返回一个反向迭代器,可以用于支持倒序遍历对象的元素。
  42. __await__(self): 用于支持异步协程。
  43. __aenter__(self): 用于在异步上下文管理器中执行一些初始化操作。
  44. __aexit__(self, exc_type, exc, tb): 用于在异步上下文管理器中执行一些清理操作。
  45. __addition_assignment__(self, other): 实现“+=”运算符,用于将两个对象相加并赋值给左边的对象。
  46. __subtraction_assignment__(self, other): 实现“-=”运算符,用于将两个对象相减并赋值给左边的对象。
  47. __multiplication_assignment__(self, other): 实现“*=”运算符,用于将两个对象相乘并赋值给左边的对象。
  48. __division_assignment__(self, other): 实现“/=”运算符,用于将两个对象相除并赋值给左边的对象。
  49. **floor_division_assignment**(self, other): 实现“//=”运算符,用于将两个对象整除并赋值给左边的对象。
  50. __power_assignment__(self, other): 实现“**=”运算符,用于将左边的对象的值乘以右边的对象的幂并赋值给左边的对象。
  51. __or__(self, other): 实现“|”运算符,用于对两个对象进行按位或运算。
  52. __and__(self, other): 实现“&”运算符,用于对两个对象进行按位与运算。
  53. __xor__(self, other): 实现“^”运算符,用于对两个对象进行按位异或运算。
  54. __or_assignment__(self, other): 实现“|=”运算符,用于对两个对象进行按位或运算并赋值给左边的对象。
  55. __and_assignment__(self, other): 实现“&=”运算符,用于对两个对象进行按位与运算并赋值给左边的对象。
  56. __xor_assignment__(self, other): 实现“^=”运算符,用于对两个对象进行按位异或运算并赋值给左边的对象。
  57. __rshift__(self, other): 实现“>>”运算符,用于将左边的对象进行右移位运算。
  58. __lshift__(self, other): 实现“<<”运算符,用于将左边的对象进行左移位运算。
  59. __rshift_assignment__(self, other): 实现“>>=”运算符,用于将左边的对象进行右移位运算并赋值给左边的对象。
  60. __lshift_assignment__(self, other): 实现“<<=”运算符,用于将左边的对象进行左移位运算并赋值给左边的对象。
  61. __neg__(self): 实现一元负运算符“-”。
  62. __pos__(self): 实现一元正运算符“+”。
  63. __abs__(self): 返回对象的绝对值。
  64. __invert__(self): 实现按位取反运算符“~”。
  65. __round__(self, ndigits=None): 对对象进行四舍五入并返回一个整数。
  66. __trunc__(self): 对对象进行截断操作并返回一个整数。
  67. __floor__(self): 对对象进行向下取整操作并返回一个整数。
  68. __ceil__(self): 对对象进行向上取整操作并返回一个整数。
  69. __complex__(self): 用于将对象转化成复数。
  70. __dir__(self): 返回对象的属性列表,可以用于帮助开发者了解对象的属性结构。
  71. __enter__(self): 用于在with语句中执行一些初始化操作。 73. __exit__(self, exc_type, exc_value, traceback): 用于在with语句中执行一些清理操作。
  72. __eq__(self, other): 实现“==”运算符,用于比较两个对象是否相等。
  73. __format__(self, format_spec): 用于将对象格式化成指定的字符串格式。
  74. __ge__(self, other): 实现“>=”运算符,用于比较两个对象的大小。
  75. __getattribute__(self, name): 获取对象的属性值时调用,可以用于动态生成属性或进行错误处理。
  76. __gt__(self, other): 实现“>”运算符,用于比较两个对象的大小。
  77. __hash__(self): 返回对象的哈希值,可以用于实现自定义的哈希函数。
  78. __le__(self, other): 实现“<=”运算符,用于比较两个对象的大小。
  79. __lt__(self, other): 实现“<”运算符,用于比较两个对象的大小。
  80. __ne__(self, other): 实现“!=”运算符,用于比较两个对象是否不相等。
  81. __nonzero__(self): 返回对象的布尔值,可以用于将对象转化成布尔值。
  82. __oct__(self): 将对象转化成八进制。
  83. __pos__(self): 实现一元正运算符“+”。
  84. __pow__(self, other, modulus=None): 实现幂运算符“**”。
  85. __reduce__(self): 用于将对象序列化为字节流。
  86. __reduce_ex__(self, protocol): 用于将对象序列化为字节流,并指定序列化协议。
  87. __repr__(self): 返回对象的字符串表示形式,通常是用于开发者调试和查看对象信息。
  88. __sizeof__(self): 返回对象占用的内存大小。
  89. __subclasshook__(cls, C): 用于判断一个类是否是另一个类的子类。
  90. __truediv__(self, other): 实现真除法运算符“/”。
  91. __xor__(self, other): 实现按位异或运算符“^”。
  92. __subclasscheck__(cls, C): 用于判断一个类是否是另一个类的子类。
  93. __init_subclass__(cls, **kwargs): 用于在子类创建时进行一些初始化操作。
  94. __fspath__(self): 返回对象在文件系统中的路径。
  95. __round__(self, ndigits=None): 对对象进行四舍五入并返回一个浮点数。
  96. __trunc__(self): 对对象进行截断操作并返回一个浮点数。
  97. __floor__(self): 对对象进行向下取整操作并返回一个浮点数。

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

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

相关文章

4.24~25(总结)

第一周任务 - Virtual Judge 分析&#xff1a;这道题开始想错了&#xff0c;所以错了一次。后来又仔细读了一遍题&#xff0c;才发现&#xff0c;要是最长的那个排序子数组&#xff0c;所以第二次就做出来了&#xff0c;它其实应该分为两大块&#xff0c;第一块找左边的起点&a…

HTTPS (HTTP+SSL) 对称/非对称加密 中间人攻击 证书加密

&#x1f496; 欢迎来阅读子豪的博客&#xff08;JavaEE篇 &#x1f934;&#xff09; &#x1f449; 有宝贵的意见或建议可以在留言区留言 &#x1f4bb; 欢迎 素质三连 点赞 关注 收藏 &#x1f9d1;‍&#x1f680;码云仓库&#xff1a;补集王子的代码仓库 不要偷走我小火…

“源擎”云原生分布式核心业务系统有什么产品优势?

“源擎”核心系统利用云原生、分布式、微服务技术&#xff0c;基于企业架构设计思想&#xff0c;构建了基础服务、业务服务、交易中心以及系列支撑组件&#xff0c;包含业务架构和多个微服务应用。 业务架构中&#xff0c;交易中心为银行提供了更灵活的选择&#xff0c;支持产…

出现Invalid bound statement (not found)问题的解决办法(已解决)

前言&#xff1a; 今天在写项目时出现了Invalid bound statement (not found):xxxx这个问题&#xff0c;网上找了很多博客都不行&#xff0c;最后修改了配置文件解决了问题&#xff0c;借此将此类问题常见的解决办法汇总一下。 话不多说&#xff0c;直接列出解决办法如下&…

linux-0.11 研究

前言 多阅读优秀代码&#xff0c;才能提高快速、深刻理解代码的能力。linux 内核源码无疑是最好的选择&#xff0c;不过当前 linux 内核版本为 6.3&#xff0c;代码量是相当庞大了&#xff0c;别说看完整个代码了&#xff0c;就算是看完一个子系统&#xff0c;都是不太现实的。…

PostgreSQL的安装与配置(Windows版本)

下载windows安装包 官网地址 安装 官网下载安装包 安装 测试 默认信息直接回车&#xff0c;最后密码输入设置的超级用户密码即可

【Python游戏】在这款程序员游戏新作《现代空战—战机游戏》里,你可以体验一把紧张的空战感觉、刺激鸭~打飞机游戏都能有那么多骚操作……

导语 不知道大家有没有幻想过遨游在广阔蓝天进行惊险的空战吗? 所有文章完整的素材源码都在&#x1f447;&#x1f447; 粉丝白嫖源码福利&#xff0c;请移步至CSDN社区或文末公众hao即可免费。 虽然这样的画面常常只会出现在电影之中&#xff0c;但小编今天给大家编写的一款…

【数据结构】顺序表和链表基本实现(含全代码)

文章目录 一、什么是线性表1. 什么是顺序表动态开辟空间和数组的问题解释LeetCode-exercise 2. 什么是链表2.1链表的分类2.2常用的链表结构及区别2.3无头单向非循环链表的实现2.4带头双向循环链表的实现2.5循序表和链表的区别LeetCode-exercise 3. 快慢指针LeetCode-exercise 一…

【牛客刷题专栏】0x24:JZ23 链表中环的入口结点(C语言编程题)

前言 个人推荐在牛客网刷题(点击可以跳转)&#xff0c;它登陆后会保存刷题记录进度&#xff0c;重新登录时写过的题目代码不会丢失。个人刷题练习系列专栏&#xff1a;个人CSDN牛客刷题专栏。 题目来自&#xff1a;牛客/题库 / 在线编程 / 剑指offer&#xff1a; 目录 前言问…

【GPT】文本生成任务(生成摘要、文本纠错、机器翻译等的模型微调)

note 文章目录 note一、NLG任务二、NLG之文本摘要2.1 基于mT5的文本摘要2.2 基于openai接口测试2.3 基于chatGPT接口 三、根据自己的数据集进行模型微调四、文本纠错任务五、机器翻译任务Reference 一、NLG任务 NLG&#xff1a;自然语言生成任务&#xff0c;很多NLP任务可以被…

Redis入门到入土(day02)

五大数据类型 官方文档 全段翻译&#xff1a; Redis是一个开放源代码&#xff08;BSD许可&#xff09;的内存中数据结构存储&#xff0c;用作数据库&#xff0c;缓存和消息代理。它支持数据结构&#xff0c;例如字符串&#xff0c;哈希&#xff0c;列表&#xff0c;集合&#…

vue项目 解决el-table自适应高度,vue页面不显示多条滚动条,超出的部分让el-table内部出现滚动条(推荐使用第二种解决方案)

一、需求 后台管理系统&#xff1a;最常见的页面都是由—>左侧菜单、头部tabView页签、主体数据渲染页面&#xff08;AppMain&#xff09;&#xff1b;而一般AppMain页面又分为&#xff1a; 搜索区域、table数据&#xff08;分页&#xff09;&#xff0c;可能也会存在底部&a…

Reid训练代码之数据集处理

本篇文章是对yolov5_reid这篇文章训练部分的详解。 该项目目录为&#xff1a; . |-- config # reid输入大小&#xff0c;数据集名称&#xff0c;损失函数等配置 |-- configs # 训练时期超参数定义 |-- data # 存储数据集和数据处理等代码&#xff0c;以及yolov5类别名称等 |--…

【高分论文密码】大尺度空间模拟预测与数字制图技术

大尺度空间模拟预测和数字制图技术和不确定性分析广泛应用于高分SCI论文之中&#xff0c;号称高分论文密码。 大尺度模拟技术可以从不同时空尺度阐明农业生态环境领域的内在机理和时空变化规律&#xff0c;又可以为复杂的机理过程模型大尺度模拟提供技术基础。 在本次&#x…

cocosLua 之 RichText(1)

结构 富文本主要通过RichText来实现, 其继承结构&#xff1a; #mermaid-svg-AHbMrHe3zp3q1wTZ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-AHbMrHe3zp3q1wTZ .error-icon{fill:#552222;}#mermaid-svg-AHbMrHe3z…

Linux下ds18b20驱动开发获取温度

文章目录 一、修改并且编译设备树&#xff08;1&#xff09;修改设备树&#xff08;2&#xff09;修改开发板设备树进行reboot 二、硬件连接三、驱动开发与测试&#xff08;1&#xff09;编写设备驱动&#xff08;2&#xff09;编写测试代码&#xff08;3&#xff09;Makefile&…

第四章——数学知识1

质数 质数&#xff1a;在大于1的整数中&#xff0c;如果只包含1和本身这俩个约束&#xff0c;就被叫质数或素数。 质数判定试除法 质数的判定——试除法&#xff1a;如果d能整除n&#xff0c;则n/d再除n&#xff0c;结果是一个整数。 d≤n/d。 bool is_prime(int x) {if (x <…

【大数据之Hadoop】二十、Yarn基础框架及工作机制

1、Yarn基础框架 Yarn是一个资源调度平台&#xff0c;负责为运算程序提供服务器运算资源&#xff0c;相当于一个分布式的操作系统平台&#xff0c;而MapReduce等运算程序则相当于运行于操作系统之上的应用程序。 YARN主要由ResourceManager、NodeManager、ApplicationMaster和…

202303-1 田地丈量

代码 #include<iostream> #include<vector> #include<string> #include<cmath> #include<algorithm> #include<stack> using namespace std; int n, a, b;int main() {cin >> n >> a >> b;int x1, y1, x2, y2;int x, y;…

科学计算NumPy之Ndarray数组对象的创建、切片、索引、修改等操作汇总

NumPy的操作汇总 NumPy概述Ndarray对象基本使用Ndarray的属性Ndarray的类型Ndarray的形状 创建数组创建数组创建全1数组创建全1数组从已有数组创建新数组从现有数组生成创建等差数列数组创建等比数列数组创建等间隔数列数组创建随机数数组创建正态分布创建创建均匀分布 数组切片…