Ich rufe einen Konstruktor mit Argumenten s = 1, t = 2, y = 3, aber ohne p. Da p nicht definiert ist, wird es nicht festgelegt. Ich habe überlegt, *
anstelle von **
zu verwenden, aber ich möchte immer noch Schlüsselwörter verwenden.Wie kann ich Schlüsselwortvarargs in einem Python-Konstruktor zuweisen?
class Creator(object):
def __init__(self, **kwargs):
if len(kwargs) > 1:
self.scenario = kwargs.pop('s')
self.t = kwargs.pop('t')
self.y = kwargs.pop('y')
self.p = kwargs.pop('p')
Wie kann ich die Parameter analysieren I (das heißt var (kw) args) ausgewählt haben, während Zuordnung derer ignoriert, die ich bestanden haben, nicht wahr?
_Because p nicht definiert ist, ist es nicht auf Gegenteil ist set_, ** ist ** auf "Keine" eingestellt. Die lokale Variable 'scenario' bricht ein Muster auf, und ohne ein klares Muster können Sie keinen generischen Code für die Neuzuordnung von Kwarts zu Instanzvariablen schreiben. Können Sie präzisieren, was Sie mit _parsing alle Parameter_ meinen? –
Ich erhalte eine 'KeyError:' beim Versuch, p zuzuweisen – noumenal
@Rogalski Bearbeitet in Antwort auf den Kommentar – noumenal