2009-07-22 18 views
6

Soy bastante nuevo en el mundo de Python y trato de aprenderlo.Creación de objetos Python

Esto es lo que estoy tratando de lograr: quiero crear una clase de Auto, su constructor comprueba la entrada para establecer el objeto carName como la entrada. Trato de hacer esto mediante el uso de la lógica java pero es probable que falle :)

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

¿Qué libro estás usando para enseñar a ti mismo Pyt hon? ¿Dónde viste código como este? ¿Leíste un sitio web? ¿Si es así, Cuál? –

+0

Creo que lo que usted quiso decir es __init__ en lugar de __self__. – riza

Respuesta

14

deriva de objeto para new-style class
uso __init__ para inicializar la nueva instancia, no __self__
__main__ es 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

trabajando, gracias :) –

+0

@Crib, De nada :) – sunqiang

+2

Además, deberías derivar del objeto: clase Coche (objeto): ... – hughdbrown

1

Aún no se define una variable, y se utiliza init y auto. Te gusta esto:

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

    def showName(self): 
     print self.carName 

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

esto no es correcto!

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 primera carName es una variable de clase como miembro estático en C++

la segunda carName (self.carName) es una instancia de variable , si desea establecer la variable de clase con el constructor que tiene que hacerlo de esta manera:

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