Python - Otro problema en POO

 
Vista:
sin imagen de perfil

Otro problema en POO

Publicado por Agustin (21 intervenciones) el 10/09/2014 19:53:17
Tengo otro problema, aunque no sé si es otro problema en si, mira el codigo
import random
c = random.randint(1, 3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
class Vehiculo():
    litros = 5
    def coche(self):
        return "Has montado en el coche"
 
    def bici(self):
        return "Has montado en la bici"
 
    def moto(self):
        print "Has montado en la moto"
 
    def conducir(self):
        el_coche = coche()
        la_bici = bici()
        la_moto = moto()
        litros = 5
        while c == 3:
            litros -= 1
            el_coche
            print "Quedan", litros, "litros de gasolina"
            if litros == 0:
                print "No queda gasolina, el coche no se mueve"
                print "Puedes montar en bici o en moto"
                elegir = raw_input("Elige el vehiculo: ")
                if elegir == bici:
                    la_bici
                elif elegir == moto:
                    la_moto
        while c == 2:
            la_bici
            print "Eres deportista y no paras de andar en la bici"
            print "y no te cansas hasta muy tarde. Al dia siguiente coges o el coche o la moto"""
            elegir1 = raw_input("Que escoges: ")
            while elegir1 == coche:
                litros -= 1
                el_coche
                print "Quedan", litros, "litros de gasolina"
                while litros == 0:
                    print "No queda gasolina, el coche no se mueve"
                    la_moto
                    print "Quedan", litros, "litros de gasolina"
                    if litros == 0:
                        print "No queda gasolina, la moto no se mueve"
 
 
 
 
vehi = Vehiculo()
vehi.conducir()
vehi.coche()
vehi.bici

Me gustaría que me ayudaran a "optimizar" el codigo de alguna manera, para hacerlo un poco más sencillo, tampoco consigo usar las funciones coche() bici() y moto() ya que cuando las llamo en la función conducir() al ejecutar el código
me dice (depende de cual sea, digamos coche()) que el nombre coche() no está definido o algo así.
Esto es lo que sale:
1
2
3
4
5
File "C:/Users/Pollastre/PycharmProjects/prueba/prueba4.py", line 51, in <module>
    vehi.conducir()
  File "C:/Users/Pollastre/PycharmProjects/prueba/prueba4.py", line 15, in conducir
    el_coche = coche()
NameError: global name 'coche' is not defined


PD: EL CÓDIGO NO ESTÁ COMPLETO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 2.239
Plata
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Otro problema en POO

Publicado por xve (1646 intervenciones) el 10/09/2014 21:01:11
Hola Agustin, tienes unos cuentos errores en este código... te comento.

Los errores que muestras, es porque estas llamando a funciones de la clase desde la clase, por lo que para diferenciarlos de una función externa a la clase, tienes que llamarlos con self.funcion()

1
2
3
el_coche = self.coche()
la_bici = self.bici()
la_moto = self.moto()

A continuación, al probarlo me da error en la variable "c", que ya no se que es...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Otro problema en POO

Publicado por Agustin (21 intervenciones) el 10/09/2014 21:36:03
Muchas gracias, estoy aprendiendo y experimentando :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar