使用reload()时的NameError

时间:2012-11-19 14:28:06

标签: python

我有一个名为recommend.py的文件。它有一个名为批评者的词典数据。

当我尝试在解释器中重新加载它时,它会出现以下错误:

>>> from recommend import critics
>>> reload(recommend.py)
     Traceback (most recent call last):
       File "<stdin>", line 1, in <module>
     NameError: name 'recommend' is not defined
>>>

我是python的新手。请帮帮我。

2 个答案:

答案 0 :(得分:7)

recommend.py被解析为recommend . py,这意味着python会查找绑定到名称recommend的对象,然后尝试从中获取py属性。这不起作用,因为您在当前命名空间中没有名为recommend的对象,并且因为即使您确实有一个绑定到该名称的对象,它也可能没有属性py

当然,您需要为reload提供一个实际的模块对象。更像是:

import recommend
reload(recommend)

答案 1 :(得分:1)

reload()采用模块对象,而不是文件名:

import recommend
reload(recommend)