2017-04-02 2 views
2

Also, ich habe diese Frage untersucht und habe nicht bekommen, was ich für eine solide Antwort halte, oder vielleicht fehlt mir einfach das Verständnis dafür. Im Wesentlichen möchte ich wissen:Fragen über Klasseninstanzen

A. Ist es schlechte Praxis, viele Instanzen der gleichen Klasse zu haben?

B. Was ist eine Möglichkeit, eine überwältigende Anzahl von Instanzen loszuwerden, ohne dass das Programm beendet wird?

Lassen Sie mich erklären. Angenommen, ich möchte ein Zero Person RPG schreiben, das ständig im Hintergrund läuft. Also erstelle ich eine Feindklasse, die der Held töten soll.

class Enemy: 
    # Attr = Stats held in a dict 
    def __init__(self, attr={}): 
     self.attr = attr 

Ein einfaches Beispiel. Gibt es eine Alternative, die folgenden Hunderte Male zu tun?

giant = Enemy({'atk': 10, 'def': 5}) 
poltergeist = Enemy({'atk': 7, 'def' 8}) 
... 

Oder ist dies als die Art und Weise pythonic gesehen?

Antwort

0

Nein, es ist keine schlechte Praxis, viele Instanzen der gleichen Klasse zu haben. Wenn Sie mit ORMs arbeiten, werden Sie mit vielen Objekten arbeiten, und es ist völlig in Ordnung, solange Sie nicht redundant sind und Ihr Anwendungsfall die Instanzen benötigt, und die Objekte löschen, wenn Sie sie nicht mehr benötigen.

Verschiedene Möglichkeiten zum Löschen und Objekt sind in this Antwort erklärt.

This ist eine weitere Antwort, die Verwendung von with-Anweisung zur kontextabhängigen Verwaltung von Objekten zeigt.

+0

Dank eine Tonne. Das hilft sehr! – guest1234