Salut à tous,

Un exemple vaut mieux qu'un long discours :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Bidule:
 
    attr = "123"
 
    def __init__(self):
        print "fonction init"
 
    @classmethod
    def classmet(cls):
        print "fonction classmet", cls.attr
        cls.machintruc()   # problème ici
 
    def machintruc(self):
        print "fonction machintruc", self.attr
 
Bidule().machintruc()   # OK
print "---"
Bidule.classmet()   # erreur  :(

J'ai une classe "Bidule" dont la classmethod "classmet" doit appeler la méthode "machintruc", sauf que ça marche pas. L'erreur renvoyée est la suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Traceback (most recent call last):
  File "essai.py", line 18, in <module>
    Bidule.classmet()
  File "essai.py", line 11, in classmet
    cls.machintruc()
TypeError: unbound method machintruc() must be called with Bidule instance as first argument (got nothing instead)

Savez-vous ce qui ne va pas ?


Merci d'avance


-