การผสมผสานพารามิเตอร์ใน Python
คุณสามารถส่งพารามิเตอร์ทั้งแบบมีชื่อและแบบตามตำแหน่งให้กับฟังก์ชันเดียวกันพร้อมกันได้
ทำได้โดยใช้สัญลักษณ์ *
ซึ่งหมายความว่าพารามิเตอร์ที่ระบุไว้
ทางขวาของมันควรถือเป็นพารามิเตอร์แบบมีชื่อ
หากไม่ต้องการใช้ค่าตั้งต้นของพวกมัน
มาสร้างฟังก์ชันที่จะ
แสดงพารามิเตอร์ทั้งหมดในคอนโซลกัน ตัวแปร
data จะหมายถึงพารามิเตอร์ปกติ
แบบตามตำแหน่ง ต่อจากสัญลักษณ์
* จะกำหนดตัวแปรสองตัวคือ start
และ end พร้อมค่าเริ่มต้น
อย่างไรก็ตาม เมื่อเรียกใช้ฟังก์ชัน เราจะทำให้
ตัวแปรเหล่านี้เป็นแบบมีชื่อ:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
ผลลัพธ์ของการทำงานของโค้ด:
1 2 3
หากลบค่าเริ่มต้นของตัวแปร
start และในขณะเดียวกันก็ลบการระบุมันเป็น
พารามิเตอร์แบบมีชื่อออก จะเกิดข้อผิดพลาด
นี่เกิดขึ้นเพราะสัญลักษณ์ *
ได้กำหนด start ให้เป็นตัวแปร
แบบมีชื่อแล้ว:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # จะแสดงข้อผิดพลาด
ผลลัพธ์ของโค้ดต่อไปนี้จะเป็นอย่างไร:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
ผลลัพธ์ของโค้ดต่อไปนี้จะเป็นอย่างไร:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
ผลลัพธ์ของโค้ดต่อไปนี้จะเป็นอย่างไร:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))