阅读 391

Python中的内置对象(builtins)

每次启动Python解释器时,内置模块都会自动加载,无论是作为顶层执行环境还是作为交互式会话。在此模块中定义了Object类,该类恰好是所有Python对象的基类。在此模块中定义了所有内置数据类型类,例如数字,字符串,列表等。还定义了BaseException类以及所有内置的异常。此外,所有内置功能也在内置模块中定义。

由于此模块是在当前会话中自动导入的,因此通常不会显式导入。默认情况下,可执行代码中使用的所有内置函数都被视为来自内置模块。例如

>>> len('hello')5

隐式等于

>>> import builtins>>> builtins.len('hello')5

但是,当还存在一个与内置函数同名的用户定义函数时,需要显式导入此模块。Python解释器为用户定义函数赋予更高的优先级。因此,如果代码既包含用户定义的名称,又包含相同名称的内置函数,则后者必须以内置模块作为前缀。

def len(string):print ('local len() function')print ('calling len() function in builtins module')import builtins
l = builtins.len(string)print ('length:',l)string = "Hello World"len(string)

输出结果

local len() functioncalling len() function in builtins modulelength: 11

大多数模块的名称__builtins__作为其全局变量的一部分提供。__builtins__的值通常是此模块或此模块的__dict__属性的值。

>>> import math
>>> globals(){'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'math': <module 'math' (built-in)>}


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐