我认为这是一个不寻常的问题。我有一个Python脚本script1.py
定义class BaseClass(dict)
,另一个脚本定义class ChildClass(BaseClass)
。
ChildClass
使用from script1 import *
导入第一个脚本,但在尝试运行ChildClass
时,我得到NameError: name 'BaseClass' is not defined
。
# script1.py
...
class BaseClass(dict):
def __init__(self, params):
pass
...
# ChildClass.py
from script1 import *
class ChildClass(BaseClass):
...
完全相同的脚本在我的家用机器(Ubuntu 15.04)上正常运行,但是我的工作机器(Windows 7 Pro)我得到了前面提到的NameError。
我已经检查了python环境,它确实找到了script1.py
文件,但实际上没有导入任何内部函数。
>>> from script1 import *
>>> BaseClass
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'BaseClass' is not defined'
我想象的问题是Windows Python和Linux Python之间的区别,但我之前从未遇到过这种问题。欢迎任何见解。
答案 0 :(得分:1)
结果(假设命名)script1
与内置Python模块共享一个名称。看起来我的家用机器上没有出现错误,因为我在那里运行Python 3,在我的工作机器上运行2。
要解决此问题,我只需重新命名script1
。