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

python 魔法方法简记

简单记录python中的魔法方法

一、构造与析构

__init__(self[,...])

需要初始化时可重写__init__方法

__new__(cls[,...])

以类为参数,返回实例化对象

__del__(self)

前两个为构造器,此为析构器,用于销毁对象

二、算术运算

1、算术运算相关的魔法方法

python的算数运算魔法方法如下

以上方法可以自己定义,就可以修改对应的算数运算规则

2、反运算

正运算不支持,python会自动调用反运算

python反运算的魔法方法如下

同样的,反运算也可以重写

3、一元操作符

Python支持的一元操作符如下:

_ _neg_ _()表示正号行为

_ _pos_ _()表示定义负号行为

_ _abs_ _()表示定义abs()函数(取绝对值)被调用时的行为

_ _invert_ _()表示定义按位取反的行为

三、属性相关

属性相关的魔法方法如下

四、描述符相关

描述符就是将某种特殊类型的类的实例指派给另一个类的属性,特殊类型的类,里边要至少定义_ _get_ _()、_ _set_ _()或_ _delete_ _()三个特殊方法中的一个。

描述符相关的魔法方法如下

五、容器相关

在Python中,像序列类型(如列表、元组、字符串)或映射类型(如字典)都属于容器类型。

容器类型相关魔法方法如下:

定制容器,需要注意以下两点:

如果希望定制的容器不可变,则只需要定义_ _len_ _()和_ _getitem_ _()方法。

如果希望定制的容器是可变的,除了_ _len_ _()和_ _getitem_ _()方法,至少还需要定义_ _setitem_ _()和_ _delitem_ _()两个方法。

六、迭代器

关于实现迭代器的魔法方法有两个:_ _iter_ _()和_ _next_ _()。

一个容器如果是迭代器,那就必须实现_ _iter_ _()魔法方法,这个方法实际上就是返回迭代器本身,而_ _next_ _()魔法方法决定了迭代器的规则

七、相关补充

1、生成器

生成器其实是迭代器的一种实现,但迭代器需要我们去定义一个类和实现相关的方法,而生成器则只需要在普通的函数中加上一个yield语句即可

生成器的发明使得Python模仿协同程序的概念得以实现。

协同程序,是可以运行的独立函数调用,函数可以暂停或者挂起,并在需要的时候从程序离开的地方继续或者重新开始。

生成器可以暂时挂起函数,并保留函数的局部变量等数据,然后再次调用它的时候,从上次暂停的位置继续执行下去。

2、推导式

python有列表推导式、字典推导式、集合推导式等推导式可以使用,可以很大程度节约代码量。


http://www.mrgr.cn/news/36940.html

相关文章:

  • 如何使用ssm实现学生考勤管理系统的设计与实现+vue
  • 重修设计模式-行为型-责任链模式
  • 求n的阶乘的相反数(c语言)
  • sizeof计算……元素个数
  • 【RabbitMQ 项目】客户端:消费者模块
  • 国产游戏出海火热另一面:AI和API快速成长引发网络安全挑战
  • C语言进程
  • 对数转换同底公式证明
  • 立志最细,你是否知道,嵌入式开发常见系统名称及其含义!!!
  • 三、人物骨骼介绍
  • Ubuntu 22.04无法连接网络(网络图标丢失)解决方案
  • 大城市有哪些增加现金流的方式?
  • 2024.9.26 作业 +思维导图
  • Git常用方法——详解
  • windows 录音编码为flv格式时,pcm采样格式
  • element-plus 日历组件 Calendar设置每周第一天为周一-非国际化版
  • 关于uniapp wifi调用走过的坑
  • 面向对象的三大特性:封装、继承、多态
  • FPGA学习--verlog基础语法篇
  • 天童美语:培养孩子的环保意识