2010-02-26 3 views
0

У меня есть класс 2 в python cl1 в файле f1.py и cl2 в файле f2.py. Я написал импорт f2Создайте новый объект класса

import f2 

class cl1: 
    a = f2.cl2() 

Но я вижу ошибку в a = f2.cl2(): объект модуля не имеет атрибута 'Cl2'

Почему?

Спасибо.

+5

Не можете оставить сообщение f2.py? Я должен предположить, что сообщение об ошибке означает именно это: вы не определили cl2 в f2 ... –

+0

@sterh: Пожалуйста, ОБНОВЛЯЙТЕ вопрос, чтобы опубликовать соответствующий код с f2.py. –

ответ

1

Извините, я ошибся: Ваша проблема, вероятно, в том, что у вас есть круговой импорт: f1 import f2 и наоборот. проверьте свой дизайн, так как обычно вы можете проектировать свое программное обеспечение без циклического импорта.

см: this

+0

Я удалил импорт f1 в f2.py, и теперь у меня есть ошибка импорта в f1: не могу импортировать имя cl2 – 0xAX

+0

, если f1.py все еще содержит «import f2», тогда ваш код должен работать нормально. f2.py не должен ничего знать о модулях f1.py – ptikobj

0

Следующий код работает нормально (если вы используете Python 3 можно опустить (object) частей, но в Python 2 вы должны оставить их в - они не несут ответственности за ваши ошибка, но если вы привыкнете к опуская их, вы будете иметь странные проблемы в будущем, так как ваш код растет ...):

f2.py является:

class cl2(object): 
    pass 

f1.py является:

import f2 

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

Если ваш код не работает, он должен отличаться от этого. Пожалуйста, подтвердите, что этот простой код работает для вас, а затем покажите нам (отредактировав исходный вопрос, не, разместив комментарии или «ответы»), как отличается ваш нерабочий код (отсутствие импорта, круговой импорт, неправильный импорт, или что-то еще).

Смежные вопросы