Python: Initialisieren von zusätzlichen Mitgliedern in einer Unterklasse, ohne die Basisklasse zu überschreiben/zu verscPython

Python-Programme
Anonymous
 Python: Initialisieren von zusätzlichen Mitgliedern in einer Unterklasse, ohne die Basisklasse zu überschreiben/zu versc

Post by Anonymous »

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post