python中的默认模块是什么(当我们以“print”为例运行python时会导入这些模块)
启动Python编译器时自动导入的Python中的默认模块有哪些 例如,python中的默认模块是什么(当我们以“print”为例运行python时会导入这些模块),python,printing,Python,Printing,启动Python编译器时自动导入的Python中的默认模块有哪些 例如,打印、加法和其他数学函数。 它们必须在Python中的某个地方定义 我猜想我们可以通过查找来提取此信息(例如,如果我们知道此信息,则可以从函数的来源处获取此信息)。所有这些函数都是模块的一部分。启动python shell并查看帮助- >>> help(__builtins__) \uuu内置\uuu模块包含打印功能以及许多其他函数和类。在shell中,help(\uuuuu内置程序)将为您提供几乎荒谬的
打印、加法和其他数学函数。
它们必须在Python中的某个地方定义
我猜想我们可以通过查找来提取此信息(例如,如果我们知道此信息,则可以从函数的来源处获取此信息)。所有这些函数都是模块的一部分。启动python shell并查看帮助-
>>> help(__builtins__)
\uuu内置\uuu
模块包含打印
功能以及许多其他函数和类。在shell中,help(\uuuuu内置程序)
将为您提供几乎荒谬的函数、类和这些类函数的详细列表。使用dir(\uuuu builtins\uuuuu)
可能更有用,因为它只返回包含的函数和类的名称列表。“模块”在Python中有特殊的含义。“打印”和“添加”都不是模块
+
和其他“数学函数”是运算符,而for
、in
、if
等是关键字,而不是函数,因此不会出现在\uuuuuuuu内置\uuuuu
中
如果您确实想知道启动Python时加载了哪些模块,请查看sys.modules.keys()
:
Python有三个作用域:
- 本地的
- 全球的
- 内置
如果正在执行以下函数:
def foo():
print('bar')
Python在这些范围内自上而下地查找函数print
。首先,它检查foo
中是否有名为print
的局部变量。然后,如果失败,如果print
是一个全局脚本/模块对象(在本例中,foo
函数就是这样一个对象)。如果该操作也失败,则会在\uuuuuuu内置\uuuuu
模块中查找
\uuuuuuuuu内置
模块是定义打印
等所有功能的地方。它还包含内置的异常类
加法运算符和其他运算符不同,因为它们处理对象。每个对象都有一种类型,例如整数123
的类型为int
。int
类型定义如何将两个整数相加以及结果是什么
在CPython
(Python.org上的Python)中,\uuuuu内置的模块和所有基本类型(int
、str
、列表
等)都是用C编写的,并且是核心(Python
可执行文件)的一部分。还有其他以同样方式编写的模块,最显著的是sys
模块。在Python的标准库中找不到sys.py
。\u\ ustrong>默认情况下,在所有程序运行时都导入内置的
type、str、dir和Python的所有其他内置函数都被分组到一个名为_builtin的特殊模块中。(这是前后两个下划线。)如果有帮助的话,您可以想象Python在启动时自动从_builtin_u; import*执行,它将所有“内置”函数导入命名空间,以便您可以直接使用它们
这样思考的好处是,通过获取有关内置模块的信息,您可以作为一个组访问所有内置函数和属性。猜猜看,Python有一个名为info的函数。你自己试试,现在浏览一下清单。稍后我们将深入讨论一些更重要的函数。(一些内置错误类,如AttributeError,应该已经很熟悉了。)
源代码和参考:要查看所有已安装的模块,可以在python解释器中使用以下命令。帮助(“模块”)
。它将显示所有已安装的模块。如果您正在查找内置函数,如print
,请使用python shell中的命令help(\uuuuuuu内置函数)
。\uuuuuuuuuu内置函数是一个模块,而不是dict,因此它没有键()
方法<代码>目录(\uuuuuuuuuuuuuuuu内置)
应提供自动导入的项目列表(不考虑文档、名称等)。谢谢你的回答,但它们是否更像是自动导入的内置函数,还有一件事我们可以通过函数名找到模块名,以防我们不知道哪个模块正在导入,其中一些模块内置到语言中,因此实际上不在任何地方,除非您计算一些用于实现Python的C代码。。。即使如此,即使您理解了代码,也很难指出其中的一部分并说“这是XYZ Python功能”。@EliBendersky RonakG是对的,那帮助是正确的。但是,如果您在运行Python时实际查找导入的模块,则这些模块未在\uuuu builtins\uuuu
中列出,因此如果是面试问题,则答案是错误的。@agf那么答案是什么?我不知道这一点。谢谢。不过,这与加载的模块无关,也不包括“添加”。Python的基本原理是在/usr/bin/Python
中用C实现的。
def foo():
print('bar')