Bonjour,

Comme indiqué dans le titre je me pose une petite question basique sur l'ordre de déclaration en python (aussi bien pour les classes que pour les fonctions je suppose).

J'ai crée un petit fichier pour expérimenter et je l'ai exécuté.
J'ai obtenu une NameError.

Voici le fichier en question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/python
 
class testbis:
    obj = test()
 
    def __init__(self):
        self.name = "testbis example"
 
class test:
    obj = testbis()
 
    def __init__(self):
        self.name = "testbis example"
J'ai très bien compris l'erreur : J'utilise la classe test avant de l'avoir définie.
Dans ce cas il suffit de remettre la classe test au dessus de la classe testbis.
Seulement je suppose qu'on peut se retrouver parfois avec des cas tordus où deux classes sont chacune une dépendance de l'autre.
Et dans ce cas, changer l'ordre des classes dans mon fichier ne résout rien!
Je vais faire un parallèle avec le C.

En C, quand une fonction A nécessite une fonction B mais que la fonction B n'est définie que plus bas, se contenter de rajouter la déclaration la fonction B au dessus de la fonction A (juste avec son prototype) peut résoudre le problème.
D'où ma question :
Existe-t-il une manière de faire analogue en Python?

Merci d'avance!