开发者

How can I toy with this .py file?

开发者 https://www.devze.com 2023-04-08 20:42 出处:网络
I\'m learning Python just so I can tinker with the files from AIMA easily. I know Java and C++, but I find the AIMA code on the repositories to be too obfuscated. The Python code looks simpler and mor

I'm learning Python just so I can tinker with the files from AIMA easily. I know Java and C++, but I find the AIMA code on the repositories to be too obfuscated. The Python code looks simpler and more elegant...yet, I don't know Python.

I wanna import the functions in search.py.

I tried creating a search2.py file like this:

import search

class Problem2(Problem):
    pass

on the folder where search.py is开发者_如何学JAVA and got:

~/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

Why is this?


When you import search, you define the name search, as a module created from executing search.py. If in there is a class called Problem, you access it as search.Problem:

import search

class Problem2(search.Problem):
    pass

An alternative is to define Problem with this statement:

from search import Problem

which executes search.py, then defines Problem in your file as the name Problem from the newly-created search module. Note that in this form, the name search is not defined in your file.


You have two options here:

  1. Instead of import search, write from search import Problem

  2. Instead of class Problem2(Problem), write class Problem2(search.Problem)


If class Problem is located in the search module, you have to import it either like that from search import Problem or use it like that:

import search

class Problem2(search.Problem):
    pass
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号