การผสมผสานพารามิเตอร์ใน Python

คุณสามารถส่งพารามิเตอร์ทั้งแบบมีชื่อและแบบตามตำแหน่งให้กับฟังก์ชันเดียวกันพร้อมกันได้ ทำได้โดยใช้สัญลักษณ์ * ซึ่งหมายความว่าพารามิเตอร์ที่ระบุไว้ ทางขวาของมันควรถือเป็นพารามิเตอร์แบบมีชื่อ หากไม่ต้องการใช้ค่าตั้งต้นของพวกมัน

มาสร้างฟังก์ชันที่จะ แสดงพารามิเตอร์ทั้งหมดในคอนโซลกัน ตัวแปร data จะหมายถึงพารามิเตอร์ปกติ แบบตามตำแหน่ง ต่อจากสัญลักษณ์ * จะกำหนดตัวแปรสองตัวคือ start และ end พร้อมค่าเริ่มต้น อย่างไรก็ตาม เมื่อเรียกใช้ฟังก์ชัน เราจะทำให้ ตัวแปรเหล่านี้เป็นแบบมีชื่อ:

pythondef func(data, *, start=0, end=100):
  print(data, start, end)
  
func(1, start=2, end=3)

ผลลัพธ์ของการทำงานของโค้ด:

python1 2 3

หากลบค่าเริ่มต้นของตัวแปร start และในขณะเดียวกันก็ลบการระบุมันเป็น พารามิเตอร์แบบมีชื่อออก จะเกิดข้อผิดพลาด นี่เกิดขึ้นเพราะสัญลักษณ์ * ได้กำหนด start ให้เป็นตัวแปร แบบมีชื่อแล้ว:

pythondef func(data, *, start, end=100):
  print(data, start, end)
  
func(1, 2, end=3) # จะแสดงข้อผิดพลาด
Задание 1

ผลลัพธ์ของโค้ดต่อไปนี้จะเป็นอย่างไร:

pythondef func(num1, num2, *, num3):
  return (num1 + num2) * num3
  
print(func(2, 4, num3=3))
Задание 2

ผลลัพธ์ของโค้ดต่อไปนี้จะเป็นอย่างไร:

pythondef func(num1, *, num2, num3):
  return (num1 - num2) / num3
  
print(func(12, 4, num3=5))
Задание 3

ผลลัพธ์ของโค้ดต่อไปนี้จะเป็นอย่างไร:

pythondef func(*, name='user1', age='18'):
  return 'Username is ' + name + ' age is ' + age
  
print(func(name='john'))