Sagen Sie, ich bin zum Beispiel, dass Popen mit einer Million __init __ Parametern enthält, und ich möchte ein zusätzliches Klassenmitglied initialisieren. Der Standardweg (ich denke) wäre Folgendes: < /p>
Code: Select all
from subprocess import Popen
class MyPopen(Popen):
def __init__(self, *args, **kwargs) -> None:
super().__init__(*args, **kwargs)
self.extra_member = "extra"
< /code>
Jetzt wird MyPy jedoch die Argumente nicht überprüft. Ich kann einfach MyPopen (Invalid = 7)
aufrufen, ohne dass dies gemeldet wird. Außerdem wird meine IDE die Parameter in einer Anrufseite nicht mehr auflisten. Ich möchte den Basiskonstruktor (und alle seine Überladungen) nicht explizit wiederholen, da dies viel Overhead ist und sich im Laufe der Zeit auch ändern kann. Ich denke darüber nach, zusätzliche Parameter innerhalb von __New __ intialisieren, aber das fühlt sich nicht nach richtig an. Ohne die Signatur zu wiederholen und auch die Signatur zu verschleiern? Bonuspunkte Wenn die Lösung auch die Konstruktion zusätzliche Parameter hinzufügen kann.