web-dev-qa-db-fra.com

python: NameError: nom global '...' n'est pas défini

dans mon code, j'ai:

class A:
    def a():
        ......

    def b():
        a()
        ......
    b()

Ensuite, le compilateur dira "NameError: nom global a() n'est pas défini."). Si je retire tous les éléments de la classe A, ce ne sera pas un problème, mais comment puis-je définir la méthode en classe A? Merci beaucoup.

35
Robert

Vous devez appeler self.a() pour appeler a à partir de b. a n'est pas une fonction globale, c'est une méthode de la classe.

Vous voudrez peut-être lire le tutoriel sur les classes de Python un peu plus pour obtenir les détails les plus fins.

61
Martijn Pieters