Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中的默认模块是什么(当我们以“print”为例运行python时会导入这些模块)_Python_Printing - Fatal编程技术网

python中的默认模块是什么(当我们以“print”为例运行python时会导入这些模块)

python中的默认模块是什么(当我们以“print”为例运行python时会导入这些模块),python,printing,Python,Printing,启动Python编译器时自动导入的Python中的默认模块有哪些 例如,打印、加法和其他数学函数。 它们必须在Python中的某个地方定义 我猜想我们可以通过查找来提取此信息(例如,如果我们知道此信息,则可以从函数的来源处获取此信息)。所有这些函数都是模块的一部分。启动python shell并查看帮助- >>> help(__builtins__) \uuu内置\uuu模块包含打印功能以及许多其他函数和类。在shell中,help(\uuuuu内置程序)将为您提供几乎荒谬的

启动Python编译器时自动导入的Python中的默认模块有哪些

例如,
打印、加法和其他数学函数。
它们必须在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')