前言
python有内置函数的概念,从Python3.x开始,内置函数位于builtins模块,比如我们常用的内置函数len(),其实它是builtins模块下的属性,我们也可以builtins.len()去访问,当然因为每个模块加载的时候,已经自动导入builtins模块对象,所以直接可以直接使用len()
另外因为每个模块属于module类型的一个对象,所以builtins作为一个模块对象,每个内置函数属于builtins对象的内置属性,本篇除了介绍所有的内置函数之外,还会罗列常用的内置函数。
以下是len()的例子
import builtins print(builtins.len(["fk"]))
等同于
print(len(['fuck']))
Python官方有所有的内置函数
Python官网明确罗列了所有的内置函数内置函数 — Python 3.10.0 文档,而且对于每一个内置函数都有详尽的介绍,本文将从中选取平时最常用的内置函数进行介绍,其他内置函数,还请大家访问官网查看介绍,一共70个内置函数
为69个内置函数分类(未完成)
一共69个内置函数,为了方便记忆,应该做一个分类,我没有分类完,大家去官网看吧,这里主要是告诉大家内置函数就是这些……
1、创建对象相关
set()、dict()、bool()、int()、str()、super()、float()、tuple()、type()、frozenset()、list()、range()
2、对象相关
delattr()、hash()、
3、数学相关
abs()……
下面介绍一些常见的内置函数:
list()
用于创建list对象的内置函数,虽然被称为内置函数,但其实list是一个class,此时调用的是它的初始化方法,下面是位于buildins模块中的list类的源码,其实自动调用的是list类的__init__方法
class list(object):
def __init__(self, seq=()): # known special case of list.__init__
"""
Built-in mutable sequence.
If no argument is given, the constructor creates a new empty list.
The argument must be an iterable if specified.
# (copied from class doc)
"""
pass
set()
用于创建一个set对象,set也是一个类,下面源码是位于buildins模块中的set类的__init__方法
class set(object):
def __init__(self, seq=()): # known special case of set.__init__
"""
set() -> new empty set object
set(iterable) -> new set object
Build an unordered collection of unique elements.
# (copied from class doc)
"""
pass
tuple()
尽管tuple()也被称作内置函数,但tuple在buildins中也是一个class,tuple用于创建一个tuple对象
dict()
用于创建一个dict对象,dict在buildins模块中也是一个class,它当然也被称为内置函数
any()
用于判断可迭代对象中的元素,只要有一个元素是True,则any()函数会返回True,如果传入的可迭代对象为空,则any()会返回一个False,比如list、tuple都是可迭代对象,可迭代对象的特点是可以使用for in语句,因为它们都实现了__iterable__特殊方法
all()
判断可迭代对象中的所有元素,全部为True时,all()函数返回值为True
help()
这个内置函数主要时在交互模式下使用,可以随时查询某个对象的API文档
dir()
用于查询某个对象具备哪些属性,返回值是个list,这个dir()函数特别有意思,没有向它传递参数时,它在哪里被调用,就返回哪个对象有哪些属性,比如它在一个模块中被调用,则返回模块的属性,如果是在一个函数中调用,则返回函数的属性
setattr()
用于向指定对象设置一个属性,它接受3个参数
例如,setattr(x, 'foobar', 123)
等价于 x.foobar = 123
str()
用于创建一个字符串对象,虽然它也称为内置函数,但str也是一个位于buildins模块中的类
super()
此内置函数返回的是一个代理对象,然后它会把调用的方法委托给当前类的父类,举个官方例子
class C(B): def method(self, arg): super().method(arg) # This does the same thing as: # super(C, self).method(arg)
此时用于调用父类B的method()方法,另外一种形式,则可以为super()函数传入两个参数,第一个参数是class对象,第二个参数为class产生的实例对象
总结
1、关于python内置函数的概念一定要有,最好做到随时能想起来有这些个内置函数能干什么,编写python程序时才会得心应手,不然不知道写什么。
2、哪个内置函数不会,就去官网看吧,内置函数官网的介绍:内置函数 — Python 3.7.13 文档
3、注意:不同python版本的内置函数略有不同,看好自己本地使用的python版本是什么,就去参考官网对应的版本