2011-07-30 10 views
0
class MyClass: 

    def __init__(self): 
     pass 

    val = "" 

    def getval(self): 
     # code to get val 
     # ... and at the end: 
     self.val = "bla bla" 

    self.getval() 
    print val 

Maintenant, à ce stade, il est dit que le nom self n'est pas trouvé. Si j'essaie seulement getval() (sans le préfixe de soi) alors il dit qu'aucune méthode de getval prend 0 arguments. S'il vous plaît, n'importe qui peut m'expliquer pourquoi ce code ne fonctionne pas?pourquoi ce code ne fonctionne pas? (python)

+0

Veuillez reformater votre publication. – agibalov

Répondre

1

Vous n'avez pas créé d'instance de l'objet.

class MyClass: 
    def __init__(self): 
     pass 

    val = "" 

    def getval(self): 
     # code to get val 
     # ... and at the end: 
     self.val = "bla bla" 

    self.getval() 
    print val 

o = MyClass() 
print o.getval() 
6

Voici un exemple qui a un sens un peu plus:

class MyClass: 
    def __init__(self): 
     pass 

    # this is a class variable 
    val = "" 

    def getval(self): 
     # code to get val 
     # ... and at the end: 
     self.val = "bla bla" 
     return self.val 

# make a instance of the class 
x = MyClass() 
print x.getval() 

# MyClass.val is a different class variable 
print MyClass.val 

Read the Python tutorial.

+3

Je pourrais noter que 'MyClass.val' et' x.val' sont des variables distinctes. – robert

Questions connexes