class - Problem

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.
Nitrogen
User
Beiträge: 7
Registriert: Freitag 4. Januar 2008, 21:49

class - Problem

Beitragvon Nitrogen » Donnerstag 19. März 2009, 22:34

Hey

Ich habe ein problem mit class:

ich schreibe zum beispiel:

class beispiel:
def test1(self):
pass

ich würde jetzt gerne objekte automatisch erzeugen lassen
also das ich nicht

1=beispiel()
2=beispiel()
3=
.
.
.
schreiben muss sondern das das automatisch funktioniert
ich habe schon wirklich lange darüber nachgedacht aber ich finde keine lösung

hoffentlich hat irgentwer eine Idee

Lg. Tobi
BlackJack

Beitragvon BlackJack » Donnerstag 19. März 2009, 22:43

Erzeuge die Exemplare in einer Schleife und füge sie an eine Liste an. Lässt sich eventuell auch als "list comprehension" ausdrücken.
Benutzeravatar
snafu
User
Beiträge: 5383
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Beitragvon snafu » Donnerstag 19. März 2009, 23:32

@Nitrogen: Darf ich nach dem Sinn deines Vorhabens fragen? :) Warum willst du - sagen wir mal - 10 Exemplare der selben Klasse verwenden? Meine weibliche Intuition flüstert mir nämlich gerade, dass du möglicherweise etwas machen willst, das man besser anders lösen sollte...
shcol (Repo | Doc | PyPi)
Nitrogen
User
Beiträge: 7
Registriert: Freitag 4. Januar 2008, 21:49

Beitragvon Nitrogen » Freitag 20. März 2009, 20:07

Es soll eine Simulation von Zellen entstehen wenn das ganze fertig ist
Das Problem ist das sich die Zellen Teilen sollen
-> viele verschiedene DNA's die jeweils zu einer eigenständigen Zelle gehören und veränderlich sind
somit muss ich bei jeder Zellteilung eine 1Methode löschen und 2 neue erstellen.
Ich weis nicht wie ich das sonst lösen könnte

lg Tobias
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Beitragvon nemomuk » Freitag 20. März 2009, 20:26

Methoden löschen und erstellen ist wohl sehr unsinnvoll... Ich verstehe aber dein Vorhaben jetzt auch nicht direkt - wie kann eine Zelle mehrere DNA-Stränge haben? Vllt. schilderst du das Problem selbst nochmal klarer.
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Freitag 20. März 2009, 20:28

Wie wärs mit einer Funktion, die die Zellen teilt und danach die Mutterzelle aus deinem Zellpool entfernt? Zellteilung eventuell als Methode der Zelle und die Funktion kümmert sich um die Buchhaltung.

Code: Alles auswählen

class Cell(object):
    def split(self):
        #insert magic here
        return descendents

def split_cell(cell, cell_pool):
    cell_pool.extend(cell.split())
    del cell #oder wahlweise nur aus dem pool löschen

cell_pool = []
root_cell = Cell()
split_cell(root_cell, cell_pool)


P.S. Was du meinst sind Instanzen, keine Methoden ;)
Nitrogen
User
Beiträge: 7
Registriert: Freitag 4. Januar 2008, 21:49

Beitragvon Nitrogen » Freitag 20. März 2009, 21:56

@SchneiderWeisse:
sorry war vl. ein bischen undeutlich vormuliert:
ein Zelle soll nur einen DNA strang haben aber jede Zelle kann sich teilen dabei entstehen zwei neue Zellen die nicht die gleiche DNA haben müssen.

@cofi:
ich möchte aber auch ablaufe in jeder Zelle simulieren so das jede für sich arbeitet. geht das mit deiner Methode auch?
Ja habe wirklich Instanzen gemeint, dass wort ist mir nur nicht eingefallen.

Lg. nitrogen
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Beitragvon yipyip » Freitag 20. März 2009, 21:57

Wenn ich Dich richtig verstanden habe, geht es Dir
nur um die letzte/jüngste Generation.

Bitte nicht auf biologische Plausibilität achten:
http://paste.pocoo.org/show/108857/

Die Demo soll Dir nur zeigen, wie Du vorgehen könntest.

:wink:
yipyip
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Freitag 20. März 2009, 22:45

Ich sehe keinen Grund, warum das nicht gehen sollte ;)

Das einzige was du brauchst ist ein "Ereignis", bei dem sich so eine Zelle eben teilt. Teilen sich alle Zellen auf einmal, iterierst du eben über eine Kopie deines `pools'. Sonst musst du eben eine Infrastruktur aufbauen, mit der du einzelne Zellen identifizieren kannst, um so eben die Teilung zu veranlassen. Ein Dictionary würde sich da eventuell anbieten.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Yahoo [Bot]