Ich habe eine Funktion in Python geschrieben, die ähnlich wie eine Factory in Java funktionieren soll, da sie die korrekte Klasse für die gegebenen Parameter instanziiert und diese Instanz zurückgibt.Zurückgeben einer Python-Objektinstanz einer inneren Klasse einer Funktion
Ein minimales Beispiel mit nur einer Klasse innerhalb der Funktion wäre dies:
def create_object(param):
class SpecialClass(ParentClass):
def func(self, param):
doSomething()
class_instance = SpecialClass(param)
return class_instance
ich fehlerlos dieses Objekt verwenden kann, wenn ich diese Funktion von außen anrufen. Ich gehe davon aus, dass dies etwas mit der dynamischen Eingabe in Python zu tun hat, aber ich bin mir immer noch nicht sicher, warum das tatsächlich funktioniert. Ist der Bereich, in dem diese Klasse bekannt ist, nicht nur innerhalb der Funktion selbst bekannt?
Ihre Frage ist nicht klar. Warum * würde es nicht funktionieren? Und warum sollte das etwas mit dynamischer Typisierung zu tun haben? –
Ja, was hat es mit dynamischer Typisierung zu tun? Auch @DanielRoseman, er meint, dass in Java, der Umfang der Klasse und Objekte innerhalb einer Funktion nur auf dr innen ist ... aber Florian sagt, dass es nicht der Fall zu sein scheint –
Ich kann immer noch nicht sehen was das mit dem Umfang zu tun hat. Sie geben ein Objekt von der Funktion zurück, und dieses Objekt kann auch in Java an eine beliebige Stelle übergeben werden. –