2009-07-22 6 views
6

Je suis assez nouveau dans le monde Python et j'essaie de l'apprendre.Création d'objet Python

C'est ce que j'essaie de réaliser: Je veux créer une classe Car, son constructeur vérifie l'entrée pour définir l'objet carName comme entrée. J'essaie de le faire en utilisant la logique java mais il me semble échouer :)

class Car(): 
    carName = "" #how can I define a non assigned variable anyway like "String carName;" in java 
    def __self__(self,input): 
     self.carName = input 

    def showName(): 
     print carName 

a = Car("bmw") 
a.showName() 
+1

Quel livre utilisez-vous pour vous enseigner Pyt hon? Où avez-vous vu le code comme ça? Avez-vous lu un site web? Si oui, lequel? –

+0

Je pense que ce que vous vouliez dire est __init__ au lieu de __self__. – riza

Répondre

14

dérivé de l'objet pour new-style class
utilisation __init__ pour initialiser la nouvelle instance, et non __self__
__main__ est helpful too.

class Car(object): 
    def __init__(self,input): 
     self.carName = input 

    def showName(self): 
     print self.carName 
def main(): 
    a = Car("bmw") 
    a.showName() 
if __name__ == "__main__": 
    main() 
+0

de travail, merci :) –

+0

@Crib, vous êtes les bienvenus :) – sunqiang

+2

Plus, vous devriez être dérivé de l'objet: classe Car (objet): ... – hughdbrown

1

Vous ne définissez pas une variable, et que vous utilisez et initialisation auto. Comme ceci:

class Car(Object): 
    def __init__(self,input): 
     self.carName = input 

    def showName(self): 
     print self.carName 

a = Car("bmw") 
a.showName() 
1

ce n'est pas correct!

class Car(): 
    carName = "" #how can I define a non assigned variable anyway like "String carName;" in java 
    def __self__(self,input): 
     self.carName = input 

la première RARnom est une classe variable comme membre statique en C++

la deuxième RARnom (self.carName) est une Variable d'instance , si vous souhaitez définir la variable de classe avec le constructeur vous devez le faire comme ceci:

class Car(): 
    carName = "" #how can I define a non assigned variable anyway like "String carName;" in java 
    def __self__(self,input): 
     Car.carName = input 
Questions connexes