2010-02-26 4 views
0

J'ai 2 classes dans python cl1 dans le fichier f1.py et cl2 dans le fichier f2.py. J'ai écrit f2 importationCréer un nouvel objet de classe

import f2 

class cl1: 
    a = f2.cl2() 

Mais je vois erreur dans a = f2.cl2(): objet module n'a pas d'attribut 'cl2'

Pourquoi?

Merci.

+5

pourriez-vous s'il vous plaît poster le contenu de f2.py? Je dois supposer que le message d'erreur signifie exactement cela: Vous n'avez pas défini cl2 dans f2 ... –

+0

@sterh: S'il vous plaît METTEZ À JOUR la question pour écrire le code approprié de f2.py. –

Répondre

1

Désolé, j'avais tort: ​​ votre problème est probablement que vous avez une importation circulaire: f1 importe f2 et vice versa. vérifiez votre conception, car il devrait normalement être possible de concevoir votre logiciel sans importation circulaire.

voir: this

+0

J'ai supprimé l'importation f1 dans f2.py et maintenant j'ai l'erreur d'importation dans f1: impossible d'importer le nom cl2 – 0xAX

+0

si f1.py contient encore un "f2 d'importation" alors votre code devrait fonctionner correctement. F2.py n'a pas besoin de savoir quoi que ce soit sur les modules de f1.py – ptikobj

0

Le code suivant fonctionne très bien (si vous utilisez Python 3, vous pouvez omettre les (object) parties, mais en Python 2, vous devriez les laisser dans - ils ne sont pas responsables de votre bug, mais si vous êtes habitué à les omettre vous aurez des problèmes étranges dans l'avenir la croissance de votre code ...):

f2.py est:

class cl2(object): 
    pass 

f1.py est:

import f2 

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

Si votre code ne fonctionne pas, il doit être différent de celui-ci. S'il vous plaît confirmer que ce code simple fonctionne pour vous, puis nous montrer (en éditant votre question originale, pas en postant des commentaires ou "réponses") comment votre code de non-fonctionnement diffère (manque d'importations, importations circulaires, fausses importations, ou quoi d'autre).

Questions connexes