Python 继承 - 名称未定义
我有以下代码(为了清晰起见,做了简化):
face.py:
from frame import *
class Face(Frame):
def hello(self):
print 'hello'
frame.py:
from face import *
class Frame(object):
def __init__(self, image):
self.image = image
我遇到了以下错误:
Traceback (most recent call last):
File "2.py", line 2, in <module>
from frame import *
File "/home/code/iris/frame.py", line 4, in <module>
from face import *
File "/home/code/iris/face.py", line 7, in <module>
class Face(frame.Frame):
NameError: name 'frame' is not defined
我觉得这个错误可能和我以下两点有关:
- 我设置“导入”的方式
- 我设置类的方式
有没有人能告诉我我哪里做错了?另外,如果有人能解释一下“导入”在哪里是必要的,那就太好了!
谢谢!
克里斯。
1 个回答
3
你现在遇到了一个循环依赖的问题。你的“脸部”类依赖于“框架”类,而“框架”类又依赖于“脸部”类,这样就形成了一个死锁的情况。可以参考一下这个链接:如何处理Python模块中的循环依赖?
在Python中,有几种方法可以解决这个问题:
好的方法:重构你的代码,避免使用循环导入。
不好的方法:把其中一个导入语句移动到不同的作用域。