Objekte

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten

Kann ich in Python automatisch neue Objekte generieren?

Umfrage endete am Donnerstag 22. April 2021, 15:41

Ja
3
100%
Nein
0
Keine Stimmen
 
Insgesamt abgegebene Stimmen: 3
Leolelo2222
User
Beiträge: 1
Registriert: Dienstag 20. April 2021, 13:51

Hallo,
ich programmiere seit einigen Wochen mit Python und jetzt wollte ich mal ein ganz einfaches Ökosystem Programmieren, also mit einer Tierart und einer Quelle für Essen(Punkte, die Zufällig im Bildschirm auftauchen) und, wenn sich zwei Tiere treffen, dann entsteht ein neues Tier.

Wie bekomme ich es nun hin, das ich nicht für jedes neue Tier schon variablen haben muss.
Gibt es eine Möglichkeit, wie man unbegrenzt Objekte zur Laufzeit eines Programmes erstellt(immer dann, wenn ein neues Tier entsteht)?z.B. :
class tier:
. x = None
. y = None
while running == True:
. if neues_Tier == True:
. . new tier()
Oder muss ich etwa im voraus eine Begrenzung festlegen. z.B. :
tier1_x = None
tier1_y = None
tier2_x = None
tier2_y = None
...

Ich würde mich über eine Lösung oder ein Paar Vorschläge freuen.
Mit freundlichen Grüßen Leo :D
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Du solltest dir mal die grundsätzlichen Datentypen von Python anschauen, wie z.B. Listen.
Benutzeravatar
__blackjack__
User
Beiträge: 13107
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wobei unbegrenzt schwierig werden könnte, es sei denn man hat unbegrenzt Speicher. 😉
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
nezzcarth
User
Beiträge: 1634
Registriert: Samstag 16. April 2011, 12:47

Das ist eigentlich keine Frage, die einer Umfrage bedarf, denn die Antwort ist eindeutig: ja ;)

Solche Sachen kann man eigentlich sogar sehr schön in Python machen. Hier mal ein ganz simples Beispiel zum Einstieg:

Code: Alles auswählen

#!/usr/bin/env python3
from random import gauss
from collections import namedtuple
from operator import attrgetter

ANIMALS = 10
Python = namedtuple('Python', ['weight', 'length'])


def get_random_python():
    # in kilograms
    weight = gauss(49.5, 5.5)
    # in metres
    length = gauss(3.2, 0.3)
    return Python(weight, length)


def main():
    pythons = [get_random_python() for _ in range(ANIMALS)]
    for python in sorted(pythons, key=attrgetter('weight'), reverse=True):
        print(python)


if __name__ == '__main__':
    main()
Antworten