Dies kann eine schreckliche Idee sein (fühlen Sie sich frei, mir zu sagen, wenn es ist), aber ich bin die Grenzen von Python zu erkunden, und ich könnte sehen, wie dies nützlich sein könnte (in der Tat, ich bin an einem potenziellen Fall für sie gerade jetzt).
Hier ist der Aufbau:
---(API-Datei)---
class APINode(object):
def __init__(self, *args, **kwargs):
# initialize some instance variables
def render(self, arg1, arg2):
# do some stuff and return something
def api_function( arg1, arg2 ):
# do some stuff
return APINode(args, kwargs)
---- (Meine Datei) ----
class MyNode(APINode):
def render(self, arg1, arg2):
#My override of APINode's render
def my_function( arg1, arg2 ):
api_parent_instance = api_function( arg1, arg2 )
#Can I some how create an instance of MyNode from api_parent_instance here?
Ich möchte die Ausgabe der api_function geringfügig ändern, im Grunde nur die Render-Funktion in das Objekt überschreiben es zurückgibt. Ich fühle mich wie meine Optionen sind: (1, igitt), um den Inhalt von api_function in my_function zu kopieren, aber nur konstruieren und zurückgeben ein MyNode anstelle eines APINode, oder (2, vielleicht?) nur api_function von my_function aufrufen, lassen Sie seine Arbeit tun--konstruieren und zurückgeben ein Objekt des Typs APINode, und dann kann ich irgendwie erstellen ein MyNode aus diesem Objekt, um diese eine Methode zu überschreiben.
Es läuft auf Folgendes hinaus: Ist es in Python möglich, eine Instanz einer untergeordneten Klasse aus einer Instanz einer übergeordneten Klasse zu konstruieren?
(Kommt Ihnen das bekannt vor oder fragen Sie sich, was der eigentliche Fall ist? Ich versuche, ein Django-Template-Tag zu erweitern).