Xacobe, permíteme hacer algunos comentarios sobre tu respuesta.
Cita: Aqui estrenamos la clase Coche, y creamos inicializar (por protocolo seria __init__ pero a mi no me gusta :P) con self (se pone en todos) y gasolina (valor que utilizaremos). lo de self.gasolina = gasolina hace referencia a gasolina.
__init__ es una función que se ejecuta "luego" de creado el objeto y permite, como lo dice el nombre, inicializar el objeto. Es preferible te acostumbres a usarlo ya que es la forma más "común" de hacerlo y permite, al momento de la creación, pasar los parámetros necesarios para que durante la inicialización, tu objeto quede cargado correctamente sin necesidad de estar llamando a una función luego de la creación. Es importante destacar que __init__ no es el "constructor de la clase" ya que cuando se ejecuta, el objeto ya fue creado.
Respecto a la función de "arrancar", no es necesario pasarle por parámetro "gasolina" ya que para eso deberías acceder a la "gasolina del coche" es decir: self.gasolina.
Cita: Con esto comprobamos si el coche puede arrancar. Si el nivel de gasolina es 0, no arranca, si no, arranca. Bien, nuestra clase está hecha. Pero, ¿De qué vale? Si ejecutas esto no saldra nada. Fuera de la clase, damos un nombre a esta clase. por ejemplo:
Lo que haces no es darle un "nombre a la clase" sino crear un "objeto instancia de dicha clase cuyo nombre es elcochecitolere"
Cita: a partir de ahora para refirirnos a la clase usamos elcochecitolere.
No sería para referirte a la clase sino para referenciar al objeto instancia de la clase.
El código yo lo dejaría así:
Código Python:
Ver originalclass Coche:
def __init__(self, gasolina):
self.gasolina = gasolina
def arrancar(self):
if self.gasolina: #no es necesario pasar gasolina por parámetro, para algo tenemos el atributo gasolina
print "Con gasolina, arrancando"
else:
print "Sin gasolina, imposible arrancar"
mi_coche = Coche(20)
mi_coche.arrancar()
Otra comentario es que no es necesario poner if self.gasolina == 0. Python interpreta 0 como valor lógico False y cualquier otro número como valor lógico True.
Saludos!