__Python中的内置模块

2024-09-20 22:54:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个模块Test,并且如果我需要列出其中的所有函数,我将执行以下操作:

import Test
dir(Test)

除非我导入模块,否则我将无法使用其中定义的函数。

但是__builtin__模块中的所有函数都可以在不导入的情况下使用。但是没有import __builtin__我就不能做dir(__builtin__)。这是否意味着我们在不导入整个模块的情况下使用这些函数?

from __builtin__ import zip

是上面说的吗?但如果我这样做,我会

NameError: name 'zip' is not defined

有人能解释一下这种行为吗?


Tags: 模块函数namefromtestimport定义is
3条回答

正如the Python language docs中所解释的,Python中的名称首先在本地作用域中查找,然后在任何封闭的本地作用域中查找,然后在模块级作用域中查找,最后在内置的命名空间中查找。所以内置的是特殊的外壳。它们不是在模块的作用域中导入的,但是如果在其他任何地方都找不到名称,Python将在作用域__builtin__中查找它。

请注意,您可以访问此作用域的内容而不导入它。一种便携式的方法是

import sys
print(dir(sys.modules["__builtin__"]))

在CPython中,这同样有效

print(dir(__builtins__))

但这被认为是一个实现细节,可能不适用于其他Python实现或将来的版本。

我对python一点也不了解,但也许dir(__builtins__),加上一个“s”,就是你想要的吗?

在纯Python 3.1上为我工作。

当python解释器启动时,默认情况下它将执行如下操作

from __builtin__ import *

它允许您使用在__builtin__模块中定义的所有函数/属性

但是,要使用__builtin__符号本身,您需要

导入__builtin__

这就是import语句语法的工作原理。

相关问题 更多 >

    热门问题