Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะเรียกใช้ฟังก์ชันพร้อมรายการอาร์กิวเมนต์ใน Python ได้อย่างไร


def baz1(foo, *args):

* ถัดจาก args หมายถึง "นำพารามิเตอร์ที่เหลือมาใส่ในรายการที่เรียกว่า args"

ในบรรทัด:

foo(*args)

* ถัดจาก args ในที่นี้หมายถึง "นำรายการนี้ที่เรียกว่า args และ 'unwrap' ไปไว้ในพารามิเตอร์ที่เหลือ

ใน foo2 รายการจะถูกส่งต่ออย่างชัดเจน แต่ใน args ของ wrappers ทั้งสองมีรายการ [1,2,3]

def baz1(foo, *args): # with star
     foo(*args)
def baz2(foo, args): # without star
    foo(*args)
def foo2(x, y, z):
    print x+y+z
baz1(foo2, 2, 3, 4)
baz2(foo2, [2, 3, 4])

ผลลัพธ์

9
9