0Pricing
Python Academy · บทเรียน

อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด

ใช้ค่าพารามิเตอร์เริ่มต้นและไวยากรณ์การเรียกใช้ด้วยคีย์เวิร์ด

อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด เป็นบทเรียน Python Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Python Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

บทนำ

ค่าพารามิเตอร์เริ่มต้นและไวยากรณ์การเรียกใช้ด้วยคีย์เวิร์ดทำให้ฟังก์ชัน Python ยืดหยุ่นและอธิบายตัวเองได้มากขึ้น

ค่าพารามิเตอร์เริ่มต้น

def greet(name, greeting='Hello'): กำหนดค่าเริ่มต้นให้ greeting ผู้เรียกสามารถละเว้นอาร์กิวเมนต์นี้ได้
def greet(name, greeting='Hello'):
    print(f'{greeting}, {name}!')
greet('Alice')
greet('Bob', 'Hi')

อาร์กิวเมนต์ตามชื่อ

เรียกใช้พร้อมชื่อ: greet(name='Alice', greeting='Hi') ลำดับไม่มีผลเมื่อใช้อาร์กิวเมนต์ตามชื่อ
def describe(name, age, city):
    print(f'{name}, {age}, {city}')
describe(age=30, city='NYC', name='Alice')

การผสมอาร์กิวเมนต์ตามตำแหน่งและตามชื่อ

อาร์กิวเมนต์ตามตำแหน่งต้องมาก่อนอาร์กิวเมนต์ตามชื่อในการเรียกใช้ describe('Alice', city='NYC', age=30) เป็นรูปแบบที่ถูกต้อง
def f(a, b, c='default'):
    print(a, b, c)
f(1, c='X', b=2)

กับดักของค่าเริ่มต้นที่เปลี่ยนแปลงได้

NEVER ใช้ค่าเริ่มต้นที่เปลี่ยนแปลงได้: def f(lst=[]) จะแชร์รายการเดียวกันในการเรียกใช้ทุกครั้ง ให้ใช้ def f(lst=None): lst = lst or [] แทน
def append(x, lst=None):
    if lst is None:
        lst = []
    lst.append(x)
    return lst
print(append(1))
print(append(2))

อาร์กิวเมนต์ที่ต้องระบุด้วยชื่อเท่านั้น

พารามิเตอร์หลัง * ต้องถูกเรียกใช้ด้วยชื่อ: def f(a, *, b): มีเพียง b ที่ไม่สามารถส่งตามตำแหน่งได้ วิธีนี้ช่วยบังคับให้โค้ดชัดเจน
def f(a, *, b):
    return a + b
print(f(1, b=2))

อาร์กิวเมนต์ที่ต้องระบุตามตำแหน่งเท่านั้น (3.8 ขึ้นไป)

พารามิเตอร์ก่อน / ต้องส่งตามตำแหน่ง: def f(a, b, /, c): ไม่สามารถเรียก a และ b ด้วยชื่อได้
def f(a, b, /, c=0):
    return a + b + c
print(f(1, 2, c=3))

**kwargs

def f(**kwargs) จะรวบรวมอาร์กิวเมนต์ตามชื่อส่วนเกินไว้ใน dict เหมาะสำหรับส่งต่อตัวเลือกต่าง ๆ
def show(**kwargs):
    for k, v in kwargs.items():
        print(f'{k}={v}')
show(name='Alice', age=30)

การรวม *args และ **kwargs

def f(*args, **kwargs) รองรับอาร์กิวเมนต์ตามตำแหน่งและตามชื่อได้ทุกรูปแบบ
def debug(*args, **kwargs):
    print('args:', args)
    print('kwargs:', kwargs)
debug(1,2,x=3)

การคลายแพ็กในการเรียกใช้

f(*[1,2,3]) จะกระจายรายการให้เป็นอาร์กิวเมนต์ตามตำแหน่ง f(**{'a':1}) จะกระจาย dict ให้เป็นอาร์กิวเมนต์ตามชื่อ
def add(a, b, c): return a+b+c
d = {'a':1,'b':2,'c':3}
print(add(**d))

การประยุกต์ใช้บางส่วน

from functools import partial; double = partial(pow, exp=2) ใช้กำหนดอาร์กิวเมนต์บางส่วนไว้ล่วงหน้า
from functools import partial
def power(base, exp): return base ** exp
square = partial(power, exp=2)
print(square(5))

ตรวจสอบอย่างรวดเร็ว

การใช้อาร์กิวเมนต์เริ่มต้นที่เปลี่ยนแปลงได้ เช่น def f(lst=[]) มีอันตรายอย่างไร

สรุปทบทวน

อาร์กิวเมนต์เริ่มต้น: def f(x=val) การเรียกตามชื่อ: f(x=val) หลีกเลี่ยงค่าเริ่มต้นที่เปลี่ยนแปลงได้ ใช้ * สำหรับอาร์กิวเมนต์ตามชื่อเท่านั้น ใช้ / สำหรับอาร์กิวเมนต์ตามตำแหน่งเท่านั้น และใช้ **kwargs เพื่อรวบรวมอาร์กิวเมนต์ส่วนเกิน

เรียนรู้ต่อไป

ทำได้ดีมากครับ โปรดไปยังบทเรียนถัดไปเพื่อพัฒนาทักษะของคุณต่อไป

คำถามที่พบบ่อย

บทเรียน “อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Python Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Python Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด”

ใช้ค่าพารามิเตอร์เริ่มต้นและไวยากรณ์การเรียกใช้ด้วยคีย์เวิร์ด คุณปฏิบัติ Python Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Python Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Python Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Python Academy นี้ได้ไหม

ได้ บทเรียน Python Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การกำหนดและเรียกใช้ฟังก์ชัน
  2. อาร์กิวเมนต์ค่าเริ่มต้นและคีย์เวิร์ด
  3. args และ kwargs
  4. ค่าที่ส่งกลับและขอบเขตตัวแปร
← กลับไปที่ Python Academy