python魔法方法
2021/5/10 22:33:45
本文主要是介绍python魔法方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python魔法方法
magic method(魔术方法)special method(特殊方法)的非正式同义词 。
一种由 Python 隐式调用的方法,用来对某个类型执行特定操作例如相加等等。这种方法的名称的首尾都为双下划线。特殊方法官方文档https://docs.python.org/zh-cn/3/reference/datamodel.html#specialnames
以双下划线 __ 包裹起来的方法,比如最常见的 __init__,这些方法被称为魔法方法(magic method)或特殊方法(special method),这些方法可以给 Python 的类提供特殊功能,方便我们定制一个类。简单地说,魔法方法是指Python内部已经包含的,被双下划线所包裹的方法,它们是一些可以让你对类添加“魔法”的特殊方法。如 __init__()、__str__()、__new__()、__unicode__()、__call__()几种。
Python一切皆对象,比如字面量123、“abc”也是对象,可以通过dir()来查看对象所拥有的特殊方法,如dir(123),参见下图:
对于内置的对象来说(比如整数、表、字符串等),Python为之准备好了一些特殊方法(special method),特殊方法又被成为魔法方法(magic method)。下面给出几个例子,感性认识一下。
Python的运算符是通过调用对象的特殊方法实现的。比如:
'abc' + 'xyz'
实际执行了如下操作:
'abc'.__add__('xyz')
参见下图:
所以,在Python中,两个对象是否能进行加法运算,首先就要看相应的对象是否有__add__()方法。一旦相应的对象有__add__()方法,即使这个对象从数学上不可加,我们都可以用加法的形式,来表达obj.__add__()所定义的操作。在Python中,运算符起到简化书写的功能,但它依靠特殊方法实现。
与运算符类似,许多内置函数也都是调用对象的特殊方法。比如
len([1,2,3])
实际上做的是
[1,2,3].__len__()
参见下图:
下面是我们常见的列表元素引用方式
li = [1, 2, 3, 4, 5, 6]
li[3]
实际上做的是调用
li.__getitem__(3)
参见下图:
待续
这篇关于python魔法方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享