851 Stimmen

Was ist der Zweck und die Verwendung von **kwargs?

Was sind die Verwendungszwecke für **kwargs Pythonで?

Ich weiß, dass Sie eine objects.filter auf einen Tisch legen und eine **kwargs Argument.  

Kann ich dies auch für die Angabe von Zeitdeltas tun, d. h. timedelta(hours = time1) ?

Wie funktioniert das genau? Wird es als "Auspacken" klassifiziert? Wie a,b=1,2 ?

8 Stimmen

Eine bemerkenswert prägnante Erklärung aquí : "* sammelt alle Positionsargumente in einem Tupel", "** sammelt alle Schlüsselwortargumente in einem Wörterbuch". Das Schlüsselwort ist sammelt .

0voto

aidanmelen Punkte 5260

In Java verwenden Sie Konstruktoren, um Klassen zu überladen und mehrere Eingabeparameter zuzulassen. In Python können Sie kwargs verwenden, um ein ähnliches Verhalten zu erreichen.

java-beispiel: https://beginnersbook.com/2013/05/constructor-overloading/

python Beispiel:

class Robot():
    # name is an arg and color is a kwarg
    def __init__(self,name, color='red'):
        self.name = name
        self.color = color

red_robot = Robot('Bob')
blue_robot = Robot('Bob', color='blue')

print("I am a {color} robot named {name}.".format(color=red_robot.color, name=red_robot.name))
print("I am a {color} robot named {name}.".format(color=blue_robot.color, name=blue_robot.name))

>>> I am a red robot named Bob.
>>> I am a blue robot named Bob.

Das ist nur eine andere Art, darüber nachzudenken.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X