Ich möchte eine Funktion in Python mit einem Wörterbuch aufrufen.
Hier ist ein Code:
d = dict(param='test')
def f(param):
print(param)
f(d)
Dies wird gedruckt, {'param': 'test'}
aber ich möchte, dass es nur gedruckt wird test
.
Ich möchte, dass es für weitere Parameter ähnlich funktioniert:
d = dict(p1=1, p2=2)
def f2(p1, p2):
print(p1, p2)
f2(d)
Ist das möglich?
python
function
dictionary
parameters
keyword
Dave Hillier
quelle
quelle
Ein paar zusätzliche Details, die hilfreich sein könnten (Fragen, die ich nach dem Lesen hatte und getestet habe):
Beispiele:
Nummer 1: Die Funktion kann Parameter haben, die nicht im Wörterbuch enthalten sind
Nummer 2: Sie können einen Parameter, der bereits im Wörterbuch enthalten ist, nicht überschreiben
Nummer 3: Das Wörterbuch kann keine Parameter enthalten, die nicht in der Funktion enthalten sind.
Wie in den Kommentaren gefordert, eine Lösung für Nummer 3 darin, das Wörterbuch anhand der in der Funktion verfügbaren Schlüsselwortargumente zu filtern:
Eine andere Möglichkeit besteht darin, zusätzliche kwargs in Ihrer Funktion zu akzeptieren (und zu ignorieren):
Beachten Sie, dass Sie Positionsargumente und Listen oder Tupel genauso wie kwargs verwenden können. Hier ist ein erweitertes Beispiel, das sowohl Positions- als auch Schlüsselwortargumente enthält:
quelle
'hello {greeting} {name}'.format( **{'name': 'Andrew', 'greeting': 'Mr'})
In Python wird dies als "Auspacken" bezeichnet, und Sie können etwas darüber im Tutorial finden . Die Dokumentation ist zum Kotzen, da stimme ich zu, vor allem, weil es so fantastisch nützlich ist.
quelle
Los geht's - funktioniert wie jedes andere iterable:
quelle