我该怎么玩这个.py文件?

时间:2011-09-25 21:56:24

标签: python

我正在学习Python,所以我可以轻松修补files from AIMA。我知道Java和C ++,但我发现存储库中的AIMA代码太混淆了。 Python代码看起来更简单,更优雅......但是,我不知道Python。

我想导入search.py中的函数。

我尝试像这样创建一个search2.py文件:

import search

class Problem2(Problem):
    pass

在search.py​​所在的文件夹上:

~/aima/aima-python$ python search2.py
Traceback (most recent call last):
  File "search2.py", line 3, in <module>
    class Problem2(Problem):
NameError: name 'Problem' is not defined

为什么会这样?

3 个答案:

答案 0 :(得分:7)

当您import search时,您将名称search定义为通过执行search.py​​创建的模块。如果有一个名为Problem的类,则可以将其作为search.Problem

进行访问
import search

class Problem2(search.Problem):
    pass

另一种方法是使用以下语句定义Problem

from search import Problem

执行search.py​​,然后在文件中将Problem定义为新创建的搜索模块中的名称Problem。请注意,在此表单中,文件中未定义名称search

答案 1 :(得分:3)

这里有两个选项:

  1. 而不是import search,请写from search import Problem

  2. 而不是class Problem2(Problem),请写class Problem2(search.Problem)

答案 2 :(得分:0)

如果类Problem位于search模块中,您必须像from search import Problem那样导入它,或者像那样使用它:

import search

class Problem2(search.Problem):
    pass