为什么我在python模块中得到“NameError:name'…'is not defined”?

2024-05-02 10:45:52 发布

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

文件名:recom.py

# Returns a distance-based similarity score for person1 and person2
def sim_distance(prefs,person1,person2):
# Get the list of shared_items
    si={}
    for item in prefs[person1]:
        if item in prefs[person2]:
            si[item]=1
    # if they have no ratings in common, return 0
    if len(si)==0: return 0
    # Add up the squares of all the differences
    sum_of_squares=sum([pow(prefs[person1][item]-prefs[person2][item],2)
    for item in prefs[person1] if item in prefs[person2]])
    return 1/(1+sum_of_squares)

当我尝试重新加载(recom)

回溯(最近一次呼叫): 文件“”,第1行,输入 名称错误:未定义名称“recom”


Tags: oftheinforreturnifitemprefs
2条回答

我使用python3.4.3,但我遇到了同样的问题。下面的解决方案为我解决了这个问题。在

当您使用reload()时,您还应该在使用之前使用from imp import reload。在

至于欧几里得距离分数,你可以得到如下答案:

 from recom import critics
 from recom import sim_distance
 sim_distance(critics,'Lisa Rose','Gene Seymour')

结果为:0.29429805508554946

您需要先使用“import recom”导入模块,然后才能重新加载它。另外,请确保代码在可以解析要重新编译的路径的位置执行。在

相关问题 更多 >