Ist es möglich mit Python Spielezu Programmieren ohne Klassen zu verwenden?
(Da ich das mit den Klassen nicht verstehe)
In diversen Büchern etc sind die Spiele irgendwie alle mit Klassen erstellt
O Mann, wie ich diese Frage schon in der Schule immer gehasst habe...noisefloor hat geschrieben:_was_ verstehst du denn nicht?
Code: Alles auswählen
In [1]: class Foo:
...: def bar(self):
...: print("hallo")
...:
In [2]: o = Foo()
In [3]: o.bar()
halloCode: Alles auswählen
class Foo:
def __init__(self, text):
self.text = text
def bar(self):
print("hallo", self.text)
p = Foo("Joe")
p.bar()
hallo Joe
q = Foo("Jim")
q.bar()
hallo JimIrgendwann holt dich die Vergangenheit halt immer einpillmuncher hat geschrieben:O Mann, wie ich diese Frage schon in der Schule immer gehasst habe...noisefloor hat geschrieben:_was_ verstehst du denn nicht?
Nein, sehe ich nicht so. M. Weigend führt Klassen mit einer Klasse Geld ein, die - ich meine - auch noch Währungen umrechnen kann. Ich habe nichts verstanden. Ich habe es nachher vom Konzept von php verstanden und das war eher ZufallAnsonsten hat ja jedes brauchbare Tutorial und jedes Python-Buch einsteigerfreundliche Kapitel zu Klassen.
Code: Alles auswählen
class Auto(object):
def __init__(self, geschwindigkeit, insassen):
self.geschwindigkeit = geschwindigkeit
self.insassen = insassen
def get_geschwindigkeit(self):
return self.geschwindigkeit
def get_insassen(self):
""" Liefert die Anzahl der Insassen """
return self.insassen
def beschleunigen(self, wert):
""" beschleunigt den Wagen um Wert km/h"""
self.geschwindigkeit += wert
def zusteigen(self, anzahl):
self.insassen += anzahl
def aussteigen(self, anzahl):
self.insassen -= anzahl
if __name__ == "__main__":
bmw = Auto(0, 2)
print("Das Auto fährt mit einer Geschwindigkeit von {} km/h".format(bmw.get_geschwindigkeit()))
print("Es gibt {} Insassen".format(bmw.get_insassen()))
bmw.zusteigen(3)
print("Es gibt {} Insassen".format(bmw.get_insassen()))
bmw.aussteigen(1)
print("Es gibt {} Insassen".format(bmw.get_insassen()))
bmw.beschleunigen(20)
print("Das Auto fährt mit einer Geschwindigkeit von {} km/h".format(bmw.get_geschwindigkeit())Code: Alles auswählen
Das Auto fährt mit einer Geschwindigkeit von 0 km/h
Es gibt 2 Insassen
Es gibt 5 Insassen
Es gibt 4 Insassen
Das Auto fährt mit einer Geschwindigkeit von 20 km/hCode: Alles auswählen
class Mensch(object):
def __init__(self, name):
self.name = name
class Auto(object):
def __init__(self, insassen):
self.insassen = insassen
def get_insassen(self):
namensliste = []
for insasse in self.insassen:
namensliste.append(insasse.name)
namensliste.sort()
return namensliste
if __name__ == "__main__":
luisa = Mensch("Luisa")
peter = Mensch("Peter")
sonja = Mensch("Sonja")
print("Sonja heisst {}.".format(sonja.name))
# Ich übergebe eine Liste mit
# Objekten der Klasse Mensch!
vw = Auto([luisa, peter, sonja])
namensliste = vw.get_insassen()
for name in namensliste:
print("Im Auto sitzt {}.".format(name))Code: Alles auswählen
#!/usr/bin/env python
# coding: utf8
from __future__ import absolute_import, division, print_function
def create_car(seat_count, passenger_count, speed=0):
result = {
'seat_count': seat_count,
'speed': speed,
'passenger_count': 0,
}
add_passengers(result, passenger_count)
return result
def get_speed(car):
return car['speed']
def get_passenger_count(car):
return car['passenger_count']
def accelerate(car, amount):
car['speed'] += amount
def add_passengers(car, count):
new_count = car['passenger_count'] + count
if new_count > car['seat_count']:
raise ValueError('only {0} seats in the car'.format(car['seat_count']))
car['passenger_count'] = new_count
def remove_passengers(car, count):
if count > car['passenger_count']:
raise ValueError('not enough passengers')
car['passenger_count'] -= count
def main():
bmw = create_car(4, 2, 0)
print(
'Das Auto fährt mit einer Geschwindigkeit von {} km/h.'.format(
get_speed(bmw)
)
)
print('Es gibt {0} Insassen.'.format(get_passenger_count(bmw)))
add_passengers(bmw, 2)
print('Es gibt {0} Insassen.'.format(get_passenger_count(bmw)))
remove_passengers(bmw, 1)
print('Es gibt {0} Insassen.'.format(get_passenger_count(bmw)))
accelerate(bmw, 20)
print(
'Das Auto fährt mit einer Geschwindigkeit von {} km/h.'.format(
get_speed(bmw)
)
)
if __name__ == '__main__':
main()Bleibt trotzdem noch die Frage, ob es an Herr Weigend oder an dir liegtpixewakb hat geschrieben:Nein, sehe ich nicht so. M. Weigend führt Klassen mit einer Klasse Geld ein, die - ich meine - auch noch Währungen umrechnen kann. Ich habe nichts verstanden.
Das mag Dir so vorkommen, da Du die Basics verstanden hast. Aber dieser Eindruck täuscht. Wer das Verständnis noch vor sich hat, braucht dafür länger.pixewakb hat geschrieben:Im Nachgang würde ich meinen, dass ich die Python Basics vielleicht an einem Abend vermitteln könnte
Code: Alles auswählen
# ...
def get_insassen(self):
return sorted(mensch.name for mensch in self.insassen)Code: Alles auswählen
def addiere(a, b)
c = a + b
return cCode: Alles auswählen
class beispiel(object):
#mit der Methode __init__ wird das Objekt "beispiel" erzeugt. In diesem Fall erbt "beispiel"
#von einem Standardobjekt namens "object" des Interpreters (denk nicht drüber nach, es sollte
#einfach so gemacht werden. Hier sind wir schon beim Thema Vererbung).
#Das Objekt "beispiel" wird innerhalb des Objekts "beispiel" mit "self" angesprochen. Man kann
#also auch sagen, innerhalb des Objekts ist "beispiel" = "self".
#Mit dem Erzeugen des Objekt wird gleichzeitig das "argument1" dem Attribut "self.a" und "argument2"
#dem Attribut "self.b" zugeordnet. Das Objekt "beispiel/self" besteht nun aus dem Attributen "self.a" und "self.b"
def __init__(self, argument1, argument2)
self.a = argument1
self.b = argument2
#hier wird die Methode "addiere" definiert. Der Methode wird das Objekt "self"
#übergeben. An das Objekt "self" sind die Attribute "self.a" und "self.b" gebunden
#und die Methode addiere kann die Attribute somit auch verwenden. Würde
#man "self" nicht übergeben, dann würde es zu einem Fehler kommen, weil der Methode
#die Attribute "self.a" und "self.b" nicht bekannt sind.
def addiere(self)
ergebnis = self.a + self.b
return ergebnisBei freiesMagazin findest du bergeweise Rezension zu Python-Büchern, ein großer Teil ist von mir geschrieben (also die Rezension, nicht die BücherWas genau würdest Du an Literatur empfehlen!?