Ich habe einen Code geschrieben, der eine Menge Objekte benötigt, eine Instanzmethode für jede davon verwendet und den von der Instanzmethode zurückgegebenen Wert in eine Liste schreibt.Auswahl der zu verwendenden Instanzmethode
object_list # list of objects
value_list = [object.method() for obj in object_list]
Ich brauche diese Struktur in einer Menge von verschiedenen Orten in meinem Code, der einzige Unterschied zwischen ihnen die Instanzmethode seines method
ist immer ein anderer.
Es wäre kein Problem, eine mapping approach as explained here zu verwenden, wenn die Methoden funktionieren würden. Etwas Ähnliches könnte mit exec
getan werden, aber es ist nicht sehr elegant, und ich bin nicht sicher, wie es in Bezug auf die Rückkehr der Werte funktionieren würde:
def call_method(obj, method_name: str):
return exec("obj." + method_name + "()") # returns None
Gibt es eine elegante Möglichkeit, den Code für dieses Problem Refactoring ?