2017-06-26 4 views
0

Dies ist meist eine Frage zum Programmdesign.Python: Unterklasse einer Klasseninstanz?

Ich habe mehrere identische Instrumentengehäuse, von denen jedes vier identische Instrumente enthält, mit denen ich aus der Ferne kommunizieren kann. Ich möchte eine Instrumentengehäuse-Klasse erstellen, die enthält: Methoden, um mit jedem Gehäuse zu kommunizieren, Methoden, um gehäusespezifische Operationen durchzuführen, und die Gehäuseattribute (Adressen), die notwendig sind, um diese Methoden mit ihnen zu verwenden.

Ich möchte zusätzlich Unterklassen für die Instrumente selbst machen. Diese Unterklassen würden Methoden haben, um gerätespezifische Operationen auszuführen, die die Methoden und Attribute der Superklasse aufrufen, um durch das Gehäuse zu kommunizieren.

Das Problem mit diesem Design ist, dass jedes Gehäuse letztlich fünf Instanzen hat: einen für seine Operationen und einen für jedes seiner vier Instrumente.

Ist es möglich, eine Instanz der Gehäuseklasse zu erstellen und dann Unterklassen von der Housing-Instanz zu erben? Oder denke ich über dieses Design falsch nach (ich bin relativ neu bei Python)?

Antwort

0

fand ich, was ich hier gebraucht:

https://stackoverflow.com/a/1081925/8217247

eine Instanz der Housing Klasse als Argument Durch die Verwendung, wenn ein Instrument Instanziieren und __getattr__ seine möglich haben die Instrument Kinder ziehen sich dynamisch in den Attributen neu zu definieren ihrer Instanz Housing.

1

Ich habe die Frage vielleicht missverstanden, aber von dem, was ich verstehe, hat ein Gehäuse vier (oder eine Anzahl) Instrumente darin. Sie möchten dann eine Klasse Housing und eine Klasse Instrument. Ein Gehäuse enthält eine Liste von Instrumenten, während jedes Instrument mit Bezug auf sein Gehäuse erstellt wird. Wenn ein Instrument etwas Besonderes zu tun hat, können Sie von Instrument und ebenso für Gehäuse erben.

Verwandte Themen