2009-07-22 12 views
6

Sono abbastanza nuovo nel mondo Python e sto cercando di impararlo.Creazione oggetto Python

Questo è quello che sto cercando di ottenere: Voglio creare una classe Car, il suo costruttore controlla l'input per impostare l'oggetto carName come input. Io cerco di farlo utilizzando la logica Java, ma mi sembra di non riuscire :)

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

Che libro stai usando per insegnare a te stesso Pyt hon? Dove hai visto il codice come questo? Hai letto un sito web? Se sì, quale? –

+0

Penso che volevi dire __init__ invece di __self__. – riza

risposta

14

derivato dal oggetto per new-style class
uso __init__ per inizializzare la nuova istanza, non __self__
__main__ è 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

lavoro, grazie :) –

+0

@Crib, siete i benvenuti :) – sunqiang

+2

Inoltre, dovreste derivare dall'oggetto: classe Auto (oggetto): ... – hughdbrown

1

non si definisce una variabile, e si utilizza init e di auto. In questo modo:

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

    def showName(self): 
     print self.carName 

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

questo non è corretto!

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

il primo carName è un classe variabile come membro statico in C++

la seconda carName (self.carName) è una variabile esempio, se si desidera impostare la variabile di classe con il costruttore devi farlo in questo modo:

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