返回顶部
首页 > 资讯 > 后端开发 > Python >Python内置函数详谈
  • 743
分享到

Python内置函数详谈

2024-04-02 19:04:59 743人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这种图皆取自python.org,列出了python3.10中的内置函数。 但是,这些真的都是函数吗? 我们来测试一下: import types import inspect

这种图皆取自python.org,列出了python3.10中的内置函数。

但是,这些真的都是函数吗?

我们来测试一下:


import types
import inspect
lst = dir(__builtins__)
for name in lst:
    print(name, eval(f'type({name})'))
 

lst获得的都是__builtins__模块中内容的名称,也就是说lst是一个由字符串组成的列表。但是每个字符串所代表的内容可各有含义。比如"sum"字符串所代表的就是个内置函数,"str"字符串所代表的就是个内置类。

通过eval的方式执行type函数我们可以获得每一个name对应的type对象描述,例如:

bool <class 'type'>

其实到这里我们已经可以发现,像type, dict,str,range,list,tuple,zip其实根本不是函数名称是类型名称:

dict <class 'type'>
list <class 'type'>
map <class 'type'>
range <class 'type'>
set <class 'type'>
str <class 'type'>
tuple <class 'type'>
type <class 'type'>
zip <class 'type'>

所以,类似range(10),type("c")这样的写法,是调用构造器创建了相应类型的实例。

接下来,我们再深挖一步,分别输出__builtins__中所有的内置函数和内置类型。

输出内置函数:


import types
import inspect
lst = dir(__builtins__)
for name in lst:
    if eval(f'type({name})') is types.BuiltinFunctionType:
        print(f'{name}是内置函数')
    if inspect.isbuiltin(getattr(__builtins__, name)):
        print(f'{name}是内置函数')
fs = inspect.getmembers(__builtins__, inspect.isbuiltin)
print(fs)

这里用了三种方式:

1. 如果其type对象是types.BuiltinFunctionType,则说明这是个内置函数。

2. Python中一切皆对象,那么getattr(__builtins__,name)就是把__builtins__模块视为对象,从中获取名字是name对应的具体内容,这其实就是反射在Python中的体现。获得具体内容后,利用inspect的isbuitin函数来检测是否是内置函数。(注意:inspect模块的isfunction函数只能用来检测普通函数,但内置函数不是普通函数,所以isfunction检测内置函数会得到False。要使用isbuiltin函数进行检测。)

3. 既然__builtins__是一个对象,那么完全可以使用inspect的getmemebers函数并增加一个过滤器inspect.isbuiltin,就可以直接将__builtins__中的内置函数过滤出来了。

接下来是输出内置类:


import types
import inspect
lst = dir(__builtins__)
for name in lst:
    print(name, eval(f'type({name})'))
for name in lst:
    if inspect.isclass(getattr(__builtins__, name)):
        print(f'{name}是内置类')
cs = inspect.getmembers(__builtins__, inspect.isclass)
print(cs)

因为types中并没有针对类这样的检测。所以这里都是使用inspect.isclass来进行检测。

换句话说,内置类也是类。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Python内置函数详谈

本文链接: https://lsjlt.com/news/155389.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python内置函数详谈
    这种图皆取自python.org,列出了python3.10中的内置函数。 但是,这些真的都是函数吗? 我们来测试一下: import types import inspect...
    99+
    2024-04-02
  • 浅谈python内置函数callable的用法
    callable函数可用于判断一个对象是否可以被调用,若对象可以被调用则返回True,反之则返回False。所谓可调用,是指代码里可以在对象后面跟上一对小括号,函数,方法,类都是可以...
    99+
    2023-05-16
    python内置函数 python callable函数
  • Python format函数详谈
    目录Python字符串的format函数总结Python字符串的format函数 format()函数用来收集其后的位置参数和关键字段参数,并用他们的值填充字符串中的占位符。通常格式...
    99+
    2024-04-02
  • Python内置函数OCT详解
    英文文档: oct ( x ) Convert an integer number to an octal string. The result is a valid Python expre...
    99+
    2022-06-04
    详解 函数 Python
  • Python 内置函数complex详解
    英文文档: class complex([real[, imag]]) Return a complex number with the value real + imag*1j or convert a ...
    99+
    2022-06-04
    详解 函数 Python
  • python内置函数zip详解
    目录一、简介二、详解三、代码四、Reference总结一、简介 zip() 函数用于将可迭代的对象作为参数,主要功能是将对象中对应的元素打包成一个个元组,然后返回由这些元组...
    99+
    2024-04-02
  • python内置函数之eval函数详解
    目录一、简介二、语法三、举例1、计算str表达式的值2、将str转换成list3、将str转换成dict四、Reference总结一、简介 eval()函数用来执行一个字符表达式的值...
    99+
    2024-04-02
  • Python 内置函数之随机函数详情
    目录导入模块: import random 1、random.choice(列表/元组/字符串) ,在列表或者元组中随机挑选一个元素,若是字符串则随机挑选一个字符 nu...
    99+
    2024-04-02
  • Python内置函数详细解析
    目录1.abs2.all3.any4.callable5.dir6.id7.locals 和 globals8.hash9.sum10.getattr、setattr、delattr...
    99+
    2024-04-02
  • Python 内置高阶函数详细
    目录1、Python的内置高阶函数1.1 map()1.2 reduce() 函数1.3 reduce() 函数1.4 sorted() 函数1、Python的内置高阶函数 1.1 ...
    99+
    2024-04-02
  • python 内置函数
    python内置了一系列的常用函数,以便于我们使用python。基本的数据操作基本都是一些数学运算(当然除了加减乘除)、逻辑操作、集合操作、基本IO操作,然后就是对于语言自身的反射操作,还有就是字符串操作。官方文档:https://docs...
    99+
    2023-01-30
    函数 python
  • python内置函数
    什么是内置函数 就是python给你提供的,拿来直接用的函数, 比如print 和 input等等. 截止到python版本3.6.2 python一共提供了68个内置函数. 他们就是python直接提供给我们的,有一些我们已经见过了. ...
    99+
    2023-01-30
    函数 python
  • Python max内置函数详细介绍
    Python max内置函数 max(iterable, *[, key, default]) max(arg1, arg2, *args[, key]) Return the largest item i...
    99+
    2022-06-04
    详细介绍 函数 Python
  • python内置函数bytes()用法详解
            python内置函数bytes返回一个新的bytes类型的对象,bytes类型对象是不可变序列,包含范围为 0 ...
    99+
    2023-09-05
    python bytes
  • Python函数的作用域及内置函数详解
    目录1.函数的作用域2.函数的调用详解3.内置函数总结1.函数的作用域 -- 内置 -- 全局,顶格写 -- 局部,函数内部 a = 34 #全局变量 def run(): ...
    99+
    2024-04-02
  • python内置函数之slice案例详解
    英文文档: class slice(stop) class slice(start, stop[, step]) Return a slice object representin...
    99+
    2024-04-02
  • Python内置函数详解【翻译自pyth
    翻译源 来自:https://docs.python.org/3/library/functions.html  abs(x) 返回一个数的绝对值。参数可以是一个整数或一个浮点数。若参数是复数,返回复数的模 all(iterable) ...
    99+
    2023-01-31
    详解 函数 Python
  • Python的内置函数
    1.什么是内置函数   就是python给你提供的. 拿来直接⽤的函数, 比如print., input等等. 截止到python版本3.6 python一共提供了68个内置函数. 他们就是python直接提供给我们的 Makedo...
    99+
    2023-01-31
    函数 Python
  • Python之内置函数
    ''' 内置函数 :     作用域相关(2) :         locals : 返回当前局部作用域内的所有内容         globals : 返回全局作用域内的所有内容     基础数据类型相关(38) :         和数...
    99+
    2023-01-31
    函数 Python
  • python内置函数1
    1.r=compile(s,"<string>","exec")  compile()将字符串编译成python代码2.exec(r)  执行python代码3.eval("8*6") eval("")里面只能执行表达式,执行e...
    99+
    2023-01-31
    函数 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作