博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python内置函数/内建函数,魔法方法、特殊方法 built-in functions、special method、magic method区别与联系
阅读量:2242 次
发布时间:2019-05-09

本文共 1363 字,大约阅读时间需要 4 分钟。

Python内置函数/内建函数,魔法方法、特殊方法 built-in functions、special method、magic method区别与联系

Python的内置函数与特殊方法、魔法方法概念既相关,又容易混淆,本文试图厘清其中关系。

内置函数/内建函数 built-in functions

内建函数(内建是相对于导入import来说的)是指python内部自带的函数,不需要导入外部包即可实现的函数,比如 len(),abs()等,Python针对众多的类型,提供了众多的内建函数来处理,这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Python常将其设置为该种类型的方法(method)。

Python内置函数列表可参考:

import

特殊方法 special method

special method 就是一类有特殊名字 special names的方法,此特殊名字就是前后有双下划线,此类方法实质就是内建函数的底层函数,也即 len()函数调用的是__len()函数,abs()调用的是__abs(),特殊方法的列表

python 手册中关于特殊函数的部分:

3.3. Special method names

A class can implement certain operations that are invoked by special syntax (such as arithmetic operations or subscripting and slicing) by defining methods with special names. This is Python’s approach to operator overloading, allowing classes to define their own behavior with respect to language operators. For instance, if a class defines a method named getitem(), and x is an instance of this class, then x[i] is roughly equivalent to type(x).getitem(x, i). Except where mentioned, attempts to execute an operation raise an exception when no appropriate method is defined (typically AttributeError or TypeError).、

全文链接:

魔法函数

由于内置函数调用特殊函数是由解释器自动调用,比如 > 操作直接调用 gt() 特殊函数,看起来比较魔法,故也称特殊函数也为魔法函数。

特殊函数可以在类定义内重载,而且重载后相应的内置函数也会发生变化,但不能自己创造一个不存在的特殊函数名称。

由于特殊函数的可以重载,则可以给内置函数带来更多的功能和性质,可参考:

参考

1、python内置函数和魔法函数

转载地址:http://xogbb.baihongyu.com/

你可能感兴趣的文章
Eclipse Memory Analyzer 使用技巧
查看>>
tomcat连接超时
查看>>
谈谈编程思想
查看>>
iOS MapKit导航及地理转码辅助类
查看>>
检测iOS的网络可用性并打开网络设置
查看>>
简单封装FMDB操作sqlite的模板
查看>>
iOS开发中Instruments的用法
查看>>
强引用 软引用 弱引用 虚引用
查看>>
数据类型 java转换
查看>>
"NetworkError: 400 Bad Request - http://172.16.47.117:8088/rhip/**/####t/approval?date=976
查看>>
mybatis 根据 数据库表 自动生成 实体
查看>>
C结构体、C++结构体、C++类的区别
查看>>
进程和线程的概念、区别和联系
查看>>
CMake 入门实战
查看>>
绑定CPU逻辑核心的利器——taskset
查看>>
Linux下perf性能测试火焰图只显示函数地址不显示函数名的问题
查看>>
c结构体、c++结构体和c++类的区别以及错误纠正
查看>>
Linux下查看根目录各文件内存占用情况
查看>>
A星算法详解(个人认为最详细,最通俗易懂的一个版本)
查看>>
利用栈实现DFS
查看>>