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

news/2024/4/24 15:45:42/文章来源:https://blog.csdn.net/weixin_41777118/article/details/130375943

在这里插入图片描述

  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.luyixian.cn/news_show_103583.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【FPGA-DSP】第九期:音频信号处理

从本文开始将记录一些简单的音频信号处理算法在System Generator中的实现方法。本文将介绍如何搭建音频信号的采集与输出模型。 音频信号属于一维信号&#xff0c;一些基本概念如下&#xff1a; 采样频率&#xff1a;根据奈奎斯特采样定理&#xff0c;采样频率Fs应该不低于声…

【C语言】基础语法5:数组和指针

上一篇&#xff1a;函数和递归 下一篇&#xff1a;字符串和字符处理 ❤️‍&#x1f525;前情提要❤️‍&#x1f525;   欢迎来到C语言基本语法教程   在本专栏结束后会将所有内容整理成思维导图&#xff08;结束换链接&#xff09;并免费提供给大家学习&#xff0c;希望…

记一次死锁问题

最近在做一个需求&#xff0c;碰到了死锁的问题&#xff0c;记录下解决问题的过程 背景 这个需求要改动一个接口&#xff0c;我这边称为A接口&#xff0c;原先的逻辑是A接口内部会调用c方法&#xff0c;c方法是一个dubbo方法&#xff0c; 现在需要再A接口里添加调用B方法&…

【ROS】ubuntu18.04安装ROS(ROS1 Melodic)

1、添加中科大ROS源 1.1、添加源 sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ lsb_release -cs main" > /etc/apt/sources.list.d/ros-latest.list1. 2、添加公钥 sudo apt-key adv --keyserver hkp://keyser…

编译预处理

编译预处理 1、宏定义1.1、 无参宏定义1.2、使用宏定义的优点1.3、宏定义注意点1.4、带参数的宏(重点)1.5、条件编译1.6、宏定义的一些巧妙用法(有用)1.7、结构体占用字节数的计算原则&#xff08;考题经常考&#xff0c;要会画图&#xff09;1.8、#在宏定义中的作用&#xff0…

ESP32设备驱动-BMM150数字地磁传感器驱动

BMM150数字地磁传感器驱动 文章目录 BMM150数字地磁传感器驱动1、BMM150介绍2、硬件准备3、软件准备4、驱动实现1、BMM150介绍 BMM150 是一款低功耗、低噪声的 3 轴数字地磁传感器,用于罗盘应用。 具有 1.56 x 1.56 mm 和 0.60 mm 高度的 12 引脚晶圆级芯片级封装 (WLCSP) 为…

直升机空气动力学基础--004翼型的阻力

来源 1. 空气的粘性 2.阻力的产生 3.形成因素 4.阻力系数曲线

转换json格式的日期为Javascript对象的函数

项目中碰到了用jQuery从后台获取的json格式的日期的字符串&#xff0c;需要将此字符串转换成JavaScript的日期对象。 代码如下: //转换json格式的日期&#xff08;如&#xff1a;{ServerDatetime:"\/Date(1278930470649)\/"}&#xff09;为Javascript的日期对象 fu…

Linux tail 命令

前言 Linux 实时查看日志文件&#xff0c;最主要使用的就是tail命令。 linux tail命令用于显示文件尾部的内容&#xff0c;默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个&#xff0c;则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”…

湿法冶金以及铼提取工艺,湿法冶金工艺特点及工艺流程

湿法冶金是利用浸出剂在一定温度压力下与矿石接触&#xff0c;把矿石中有用的金属溶解后再从溶液中回收有价金属的一种工艺&#xff0c;因为其过程大都是在水溶液中进行&#xff0c;所以又被称为“水法冶金”。 01 湿法冶金工艺特点及工艺流程 湿法冶金作为解决我国金属矿产资…

深度赋能产业数字化转型,蚂蚁集团数字化三件套亮相中国国际金融展

“十四五”规划纲要指出&#xff1a;加快推动数字产业化&#xff0c;推进产业数字化转型&#xff0c;实施“上云用数赋智”行动&#xff0c;推动数据赋能全产业链协同转型。明确提出了通过科技创新&#xff0c;加快产业数字化转型的要求。 4月25日&#xff0c;以“荟萃金融科技…

mybatisPlus·入门·贰

文章目录 1 简单CRUD接口1.1 根据id查询&#xff08;{id传参&#xff09;1.1.1 接口类直接继承IService1.1.2 controller直接调用方法 1.2 根据ids查询1.3 新增1.3.1 接口类直接继承IService1.3.2 controller直接调用方法 1.4 修改状态&#xff08;Query传参&#xff09;1.4.1 …

新版Fluent默认保存的h5文件无法用Tecplot打开的解决办法(亲试有效,评论区是重点)

文章目录 Ansys Fluent简介Fluent 输入/出 文件格式新版Fluent的输出压缩文件&#xff08;.cas.h5文件&#xff09;解决办法 Ansys Fluent简介 Ansys Fluent &#xff0c;是国际上比较流行的商用CFD软件包&#xff0c;在美国的市场占有率为60%&#xff0c;凡是和流体、热传递和…

NetXpert XG2帮您解决“布线安装与维护”难题

在传输大量数据时&#xff0c;光纤变得越来越重要&#xff0c;而铜缆在未来也将继续发挥重要作用&#xff0c;因此我们不仅要比较两种类型布线的优缺点&#xff0c;还要探究光纤传输中的错误来源。 测试光缆传输损耗的准确性对于故障排除至关重要&#xff0c;特别是在光纤情况下…

后台-husky提交代码规范使用

husky是一个git hook工具&#xff0c;可以帮助我们触发git提交的各个阶段&#xff1a;pre-commit、commit-msg、pre-push 1.如何使用husky呢&#xff1f; npx husky-init && npm installWindows安装不成功试试npx husky-init && npm install 2.git commit规范…

Java学习笔记-01

目录 jdk安装及环境配置 java前置知识 编写一个HelloWorld 常量 数据类型 变量 类型转换 算数运算符 一元运算符( --) 关系运算符 逻辑运算符(与或非&#xff0c;逻辑异或) 三元(三目)运算符 Scanner类的简单使用 jdk安装及环境配置 看到的一篇文章&#xff0c;…

【C++STL】set

前言 前面的CSTL的博客&#xff0c;我们介绍了string&#xff0c;vector&#xff0c;list&#xff0c;deque&#xff0c;priority_queue还有stack和queue。 这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面存储的是元素本身。 而从本节开…

(二)ElasticSearch 辅助工具 Kibana 介绍与安装

1、什么是 kibana &#xff1f; Kibana 是一个针对Elasticsearch的开源分析及可视化平台&#xff0c;用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana&#xff0c;可以通过各种图表进行高级数据分析及展示。 Kibana让海量数据更容易理解。它操作简单&#xff…

0401概述-最短路径-加权有向图-数据结构和算法(Java)

文章目录 1 最短路径2 最短路径的性质3 加权有向图的数据结构3.1 加权有向边3.2 加权有向图 4 最短路径4.1 最短路径API4.2 最短路径的数据结构4.3 边的松弛4.4 顶点的松弛 结语 1 最短路径 如图1-1所示&#xff0c;一幅加权有向图和其中的一条最短路径&#xff1a; 定义&…

加强人工智能共性技术研发与产业化协同发展

央视网消息&#xff1a;“以5G为代表的新一代信息技术与制造业、交通、旅游等实体经济重要领域深度融合。”4月20日下午&#xff0c;国新办举行一季度工业和信息化发展情况新闻发布会&#xff0c;相关部门负责人在答问时表示&#xff0c;将用好融合应用这把金钥匙&#xff0c;开…