NameError: name 'func' is not defined

NameError: name 'func' is not defined

有人知道为什么我会在这里收到 "func undefined" 错误吗?在我看来一切都是正确的。

// dictutil.py
def func(L):
    d = {}
    for i in range(len(L)):
        d[i] = L[i]
    return d

// Python 命令行提示符:

import dictutil (attempt to load dictutil.py)

错误:

Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
NameError: name 'func' is not defined

虽然您的代码是正确的,但您没有将 func 导入到您的命名空间中(这是 NameError 试图告诉您的)。

您有以下选择:

1) 在导入时将 func() 导入到您的命名空间中:

from dictutil import func

2) 通过引用包含函数的模块限定对 func() 的调用:

dictutil.func()

通常,您可以使用 dir() 方法查看本地范围的命名空间中的内容(意味着可以直接调用它):

>>> dir()
['__builtins__', '__doc__', '__name__', '__package__', 'dictutil', 'readline', 'rlcompleter']

您必须像这样访问函数:

import dictutil
dictutil.func()