ต้องวางพารามิเตอร์ที่จำเป็นทั้งหมดก่อนอาร์กิวเมนต์เริ่มต้นใด ๆ เพียงเพราะเป็นข้อบังคับในขณะที่อาร์กิวเมนต์เริ่มต้นไม่ใช่ ในทางไวยากรณ์มันจะเป็นไปไม่ได้ที่ล่ามจะตัดสินใจว่าค่าใดที่ตรงกับอาร์กิวเมนต์ใดหากอนุญาตให้ใช้โหมดผสม A SyntaxErrorจะเพิ่มขึ้นหากไม่ได้ระบุอาร์กิวเมนต์ตามลำดับที่ถูกต้อง:
ให้เราดูอาร์กิวเมนต์คำหลักโดยใช้ฟังก์ชันของคุณ
def fun1(a="who is you", b="True", x, y):
... print a,b,x,y
สมมติว่าได้รับอนุญาตให้ประกาศฟังก์ชันตามข้างต้นจากนั้นด้วยการประกาศข้างต้นเราสามารถทำการเรียกอาร์กิวเมนต์ตำแหน่งหรือคำหลักต่อไปนี้:
func1("ok a", "ok b", 1)
func1(1)
func1(1, 2)
คุณจะแนะนำการกำหนดตัวแปรในการเรียกใช้ฟังก์ชันอย่างไรอาร์กิวเมนต์เริ่มต้นจะถูกใช้ร่วมกับอาร์กิวเมนต์คำหลักอย่างไร
>>> def fun1(x, y, a="who is you", b="True"):
... print a,b,x,y
...
Reference O'Reilly - Core-Python
โดยที่ฟังก์ชันนี้ใช้ประโยชน์จากอาร์กิวเมนต์เริ่มต้นที่ถูกต้องตามหลักไวยากรณ์สำหรับการเรียกฟังก์ชันข้างต้น อาร์กิวเมนต์คำหลักที่เรียกพิสูจน์ว่ามีประโยชน์สำหรับความสามารถในการจัดหาอาร์กิวเมนต์ตำแหน่งที่ไม่อยู่ในลำดับ แต่เมื่อรวมกับอาร์กิวเมนต์เริ่มต้นแล้วก็ยังสามารถใช้เพื่อ "ข้ามผ่าน" อาร์กิวเมนต์ที่ขาดหายไปได้เช่นกัน
def myfunction(position_arguments, *arguments, **keywords):".... `