2010-02-26 317 views
0

我在f1.py文件中的python cl1和f2.py文件中的cl2中有2个类。我写了进口F2创建新的类对象

import f2 

class cl1: 
    a = f2.cl2() 

但我看到a = f2.cl2()错误:模块对象有没有属性 'CL2'

为什么?

谢谢。

+5

请问您可以发布f2.py的内容吗?我必须假设错误消息意味着:您尚未在f2中定义cl2 ... – 2010-02-26 10:35:51

+0

@sterh:请更新该问题以从f2.py中发布相关代码。 – 2010-02-26 12:21:03

回答

1

对不起,我错了: 您的问题可能是您有一个循环导入:f1导入f2,反之亦然。 检查你的设计,因为通常应该可以在没有循环导入的情况下设计你的软件。

看到:this

+0

我在f2.py中删除了导入f1,现在我在f1中导入错误:无法导入名称cl2 – 0xAX 2010-02-26 10:55:56

+0

如果f1.py仍然包含“导入f2”,那么您的代码应该可以正常工作。 f2.py不必知道任何有关f1.py的模块 – ptikobj 2010-02-26 11:06:30

0

下面的代码工作得很好(如果你使用Python 3,你可以省略(object)部分,但在Python 2,你应该留在他们 - 他们是不负责的bug,但如果你习惯了忽略他们,你会在未来奇怪的问题,因为你的代码的增长...):

f2.py是:

class cl2(object): 
    pass 

f1.py是:

import f2 

class cl1(object): 
    a = f2.cl2() 

如果您的代码不起作用,它必须与此不同。请确认此简单代码适用于您,然后向我们展示(通过发布评论或“答案”,编辑您的原始问题,而不是)您的非工作代码如何不同(缺乏进口,循环进口,或其他任何其他)。