บนพื้นฐานของตัวอย่างที่ดีบางครั้งก็ดีกว่าวาทกรรมที่มีความยาวฉันจะเขียนสองฟังก์ชั่นโดยใช้อาร์กิวเมนต์ python ทั้งหมดที่ส่งผ่านสิ่งอำนวยความสะดวก (ทั้งอาร์กิวเมนต์ตำแหน่งและชื่อ) คุณควรจะสามารถดูว่ามันทำอะไรด้วยตัวเอง:
def f(a = 0, *args, **kwargs):
print("Received by f(a, *args, **kwargs)")
print("=> f(a=%s, args=%s, kwargs=%s" % (a, args, kwargs))
print("Calling g(10, 11, 12, *args, d = 13, e = 14, **kwargs)")
g(10, 11, 12, *args, d = 13, e = 14, **kwargs)
def g(f, g = 0, *args, **kwargs):
print("Received by g(f, g = 0, *args, **kwargs)")
print("=> g(f=%s, g=%s, args=%s, kwargs=%s)" % (f, g, args, kwargs))
print("Calling f(1, 2, 3, 4, b = 5, c = 6)")
f(1, 2, 3, 4, b = 5, c = 6)
และนี่คือผลลัพธ์:
Calling f(1, 2, 3, 4, b = 5, c = 6)
Received by f(a, *args, **kwargs)
=> f(a=1, args=(2, 3, 4), kwargs={'c': 6, 'b': 5}
Calling g(10, 11, 12, *args, d = 13, e = 14, **kwargs)
Received by g(f, g = 0, *args, **kwargs)
=> g(f=10, g=11, args=(12, 2, 3, 4), kwargs={'c': 6, 'b': 5, 'e': 14, 'd': 13})