Object aus Object aufrufen

Code-Stücke können hier veröffentlicht werden.
Antworten
Mungo1981
User
Beiträge: 131
Registriert: Montag 27. August 2012, 19:05

Liebe Community,
Ich hätte da mal eine merkwürdige Frage
Ich habe zwei Klassen im gleichen Gültigkeits Raum
Ist es dann möglich in der einen Klasse die andere Klasse an zu steuern.

Wie immer für jeden Hinweis Dankbar
Mungo1981
Sirius3
User
Beiträge: 17703
Registriert: Sonntag 21. Oktober 2012, 17:20

@Mungo1981: Was meinst Du mit "ansteuern"? Mach mal ein Beispiel.
Mungo1981
User
Beiträge: 131
Registriert: Montag 27. August 2012, 19:05

Zum Beispiel

Code: Alles auswählen

class Test1:
	def testen(self, 0):
		print O
class Test2:
	def anlegen(self,):
		T = Test1()
		T.testen("Hallo Welt")
BlackJack

@Mungo1981: Bitte ein Beispiel das syntaktisch korrekt ist, und dann beschreib mal was passiert und was Du stattdessen erwartest oder haben möchtest.
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Oder so?

Code: Alles auswählen


class Tankstelle(object):
    def __init__(self):
        self.autos = []

    def neues_auto(self, auto):
        self.autos.append(auto)

    def gelaende(self):
        print "\nTankstellen Auskunft:"
        for auto in self.autos:
            print auto.zustand()
            print ""
            
    def tanken(self):
        for auto in self.autos:
            auto.tanken(20)

class Auto(object):
    def __init__(self):
        super(Auto, self).__init__()
        self.sprit = 100
        self.gefahrene_strecke = 0
        self.verbrauch = 10
    
    def fahren(self, kilometer):
        if kilometer / self.verbrauch < self.sprit:
            self.gefahrene_strecke += kilometer
            self.sprit -= kilometer / self.verbrauch
        else:
            self.gefahrene_strecke += kilometer / self.verbrauch
            self.sprit = 0
    
    def tanken(self, sprit):
        self.sprit += sprit

    def zustand(self):
        return "Gefahrene Kilometer: %i\nZustand:%i\n" % (self.gefahrene_strecke, self.sprit)

class Mercedes(Auto):
    def __init__(self, name, verbrauch):
        super(Mercedes, self).__init__()
        self.name = name
        self.sprit = 90
        self.verbrauch = verbrauch

    def zustand(self):
        return "Auto-Name: %s\nGefahrene Kilometer: %i\nZustand:%i\n" % (self.name, self.gefahrene_strecke, self.sprit)

Toja = Tankstelle()

mercedes = Mercedes('Herkules', 12)
print mercedes.zustand()
mercedes.fahren(1200)
print mercedes.zustand()

old_timer_mercedes = Mercedes('Esel', 25)
print old_timer_mercedes.zustand()
old_timer_mercedes.fahren(600)
print old_timer_mercedes.zustand()

Toja.neues_auto(mercedes)
Toja.neues_auto(old_timer_mercedes)
Toja.gelaende()
Toja.tanken()

print mercedes.zustand()
print old_timer_mercedes.zustand()

_________________________
OUTPUT: 
Auto-Name: Herkules
Gefahrene Kilometer: 0
Zustand:90

Auto-Name: Herkules
Gefahrene Kilometer: 100
Zustand:0

Auto-Name: Esel
Gefahrene Kilometer: 0
Zustand:90

Auto-Name: Esel
Gefahrene Kilometer: 600
Zustand:66

Tankstellen Auskunft:
Auto-Name: Herkules
Gefahrene Kilometer: 100
Zustand:0

Auto-Name: Esel
Gefahrene Kilometer: 600
Zustand:66

Auto-Name: Herkules
Gefahrene Kilometer: 100
Zustand:20

Auto-Name: Esel
Gefahrene Kilometer: 600
Zustand:86
Mungo1981
User
Beiträge: 131
Registriert: Montag 27. August 2012, 19:05

:oops: Ok,
war scheinbar der Versuch das Schwefelholz mit der Kerze an zünden zu wollen. :oops:
Antworten