【发布时间】:2012-04-09 23:52:22
【问题描述】:
我有一个 python 程序,我正在尝试导入其他 python 类,我得到一个 NameError:
Traceback (most recent call last):
File "run.py", line 3, in <module>
f = wow('fgd')
NameError: name 'wow' is not defined
这是在名为new.py的文件中:
class wow(object):
def __init__(self, start):
self.start = start
def go(self):
print "test test test"
f = raw_input("> ")
if f == "test":
print "!!"
return c.vov()
else:
print "nope"
return f.go()
class joj(object):
def __init__(self, start):
self.start = start
def vov(self):
print " !!!!! "
这是在文件run.py:
from new import *
f = wow('fgd')
c = joj('fds')
f.go()
我做错了什么?
【问题讨论】:
-
在询问 Python 问题时,它总是有助于指出代码中发生了什么错误。这种情况可以很容易推断出
NameError,但在其他一些时候并不那么明显,添加此类信息会花费您零努力。 -
此处的缩进与文件中的缩进相同吗?它看起来像
if f == "test",下面的意思是向右缩进。 -
new是一个错误的模块名称选择。已经有一个(已弃用)内置模块,名为new -
请注意,我建议避免使用
from ___ import *- 这(通常)是一个不好的习惯。相反,导入你想显式使用的任何内容,或者导入模块并使用<module>.<thing>。
标签: python class import nameerror