automatisch der aufgerufenen Klasse, Infos über aufrufende Klasse geben?
Verfasst: Donnerstag 14. März 2019, 16:24
Folgender Beispielcode:
Ich habe also eine Klasse Helper, welche diverse Hilfsfunktionen besitzt, auf die der Macher immer mal wieder zugreifen muss.
Nun soll es aber viele solche Macher geben und auch sehr viele hilfsfunktionen innerhalb der Helper Klasse.
Zusätzlich soll der Helper, jedesmal wenn eine seiner Funktionen aufgerufen wird wissen, welcher Macher diese Fkt aufgerufen hat (um evlt unterschiedliches zu returnen)
Der direkteste Weg der mir nun einfällt, wäre bei jeder einzelnen Funktion zb noch die ID des Machers mit zu übergeben, also "a = self.helper.machA(randint(5),self.ID)" und ebenfalls dann im Helper in der Funktion Code zufügen, damit diese ID ausgelesen wird.
Nun frage ich mich aber, ob es da nicht einen eleganteren Weg für gibt, bei dem ich denselben Code weniger oft in jeder einzelnen Funktion wiederholen muss?
Code: Alles auswählen
class Helper:
def machA(self,x):
return x + 5
def machBC(self,y,z):
return y + z
class Macher:
def __init__(self,ID,helper):
self.ID = ID
self.helper = helper
def leglos(self):
a = self.helper.machA(randint(5))
b = self.helper.machBC(randint(5),a)
return b
H = Helper()
for i in range(3):
Macher(i,H).leglos()
Nun soll es aber viele solche Macher geben und auch sehr viele hilfsfunktionen innerhalb der Helper Klasse.
Zusätzlich soll der Helper, jedesmal wenn eine seiner Funktionen aufgerufen wird wissen, welcher Macher diese Fkt aufgerufen hat (um evlt unterschiedliches zu returnen)
Der direkteste Weg der mir nun einfällt, wäre bei jeder einzelnen Funktion zb noch die ID des Machers mit zu übergeben, also "a = self.helper.machA(randint(5),self.ID)" und ebenfalls dann im Helper in der Funktion Code zufügen, damit diese ID ausgelesen wird.
Nun frage ich mich aber, ob es da nicht einen eleganteren Weg für gibt, bei dem ich denselben Code weniger oft in jeder einzelnen Funktion wiederholen muss?