របៀបប្រើ និងចំណាំអាគុយម៉ង់លំនាំដើមនៅក្នុងមុខងារ Python

អាជីវកម្ម

ការកំណត់អាគុយម៉ង់លំនាំដើមនៅក្នុងការកំណត់មុខងារ Python បណ្តាលឱ្យតម្លៃលំនាំដើមត្រូវបានប្រើ ប្រសិនបើអាគុយម៉ង់ត្រូវបានលុបចោលកំឡុងពេលហៅមុខងារ។

ព័ត៌មានលម្អិតខាងក្រោមត្រូវបានពិពណ៌នាខាងក្រោម។

  • កំណត់អាគុយម៉ង់លំនាំដើម
  • ឧបសគ្គលើទីតាំងនៃអាគុយម៉ង់លំនាំដើម
  • ចំណាំថានៅពេលដែលបញ្ជី ឬវចនានុក្រមត្រូវបានប្រើជាតម្លៃលំនាំដើម

កំណត់អាគុយម៉ង់លំនាំដើម

ប្រសិនបើឈ្មោះអាគុយម៉ង់ = តម្លៃលំនាំដើមក្នុងនិយមន័យមុខងារ តម្លៃលំនាំដើមនឹងត្រូវបានប្រើនៅពេលដែលអាគុយម៉ង់ដែលត្រូវគ្នាត្រូវបានលុបចោល។

def func_default(arg1, arg2='default_x', arg3='default_y'):
    print(arg1)
    print(arg2)
    print(arg3)

func_default('a')
# a
# default_x
# default_y

func_default('a', 'b')
# a
# b
# default_y

func_default('a', arg3='c')
# a
# default_x
# c

ឧបសគ្គលើទីតាំងនៃអាគុយម៉ង់លំនាំដើម

ការ​ដាក់​អាគុយម៉ង់​លំនាំដើម​មុន​អាគុយម៉ង់​ធម្មតា (អាគុយម៉ង់​ដែល​មិន​មាន​តម្លៃ​លំនាំដើម​ត្រូវ​បាន​បញ្ជាក់) ពេល​កំណត់​មុខងារ​នាំ​ឱ្យ​មាន​កំហុស។
SyntaxError

# def func_default_error(arg2='default_a', arg3='default_b', arg1):
#     print(arg1)
#     print(arg2)

# SyntaxError: non-default argument follows default argument

ចំណាំថានៅពេលដែលបញ្ជី ឬវចនានុក្រមត្រូវបានប្រើជាតម្លៃលំនាំដើម

ប្រសិនបើវត្ថុដែលអាចផ្លាស់ប្តូរបាន (អាចផ្លាស់ប្តូរបាន) ដូចជាបញ្ជី ឬវចនានុក្រមត្រូវបានបញ្ជាក់ជាតម្លៃលំនាំដើម នោះវត្ថុនោះនឹងត្រូវបានបង្កើតនៅពេលដែលមុខងារត្រូវបានកំណត់។ បន្ទាប់មក នៅពេលដែលមុខងារត្រូវបានហៅដោយគ្មានអាគុយម៉ង់ដែលត្រូវគ្នានោះ វត្ថុដូចគ្នាត្រូវបានប្រើ។

តម្លៃអាគុយម៉ង់លំនាំដើមត្រូវបានវាយតម្លៃពីឆ្វេងទៅស្តាំ នៅពេលការកំណត់មុខងារត្រូវបានប្រតិបត្តិ។ នេះមានន័យថាកន្សោមអាគុយម៉ង់លំនាំដើមត្រូវបានវាយតម្លៃតែម្តងប៉ុណ្ណោះនៅពេលដែលមុខងារត្រូវបានកំណត់ ហើយតម្លៃ “គណនា” ដូចគ្នាត្រូវបានប្រើសម្រាប់ការហៅនីមួយៗ។
8.7. Function definitions — Python 3.10.2 Documentation

ដូច្នេះ ជាឧទាហរណ៍ ប្រសិនបើអនុគមន៍មួយត្រូវបានកំណត់ដែលយកបញ្ជី ឬវចនានុក្រមជាអាគុយម៉ង់លំនាំដើមរបស់វា ហើយបន្ថែមធាតុទៅវា ហើយត្រូវបានគេហៅថាច្រើនដងដោយគ្មានអាគុយម៉ង់នោះ ធាតុនឹងត្រូវបានបន្ថែមទៅវត្ថុដដែលម្តងហើយម្តងទៀត។

ឧទាហរណ៍សម្រាប់ការចុះបញ្ជី។

def func_default_list(l=[0, 1, 2], v=3):
    l.append(v)
    print(l)

func_default_list([0, 0, 0], 100)
# [0, 0, 0, 100]

func_default_list()
# [0, 1, 2, 3]

func_default_list()
# [0, 1, 2, 3, 3]

func_default_list()
# [0, 1, 2, 3, 3, 3]

ឧទាហរណ៍សម្រាប់វចនានុក្រម។

def func_default_dict(d={'default': 0}, k='new', v=100):
    d[k] = v
    print(d)

func_default_dict()
# {'default': 0, 'new': 100}

func_default_dict(k='new2', v=200)
# {'default': 0, 'new': 100, 'new2': 200}

វត្ថុថ្មីមួយត្រូវបានបង្កើតរាល់ពេលដែលមុខងារត្រូវបានហៅ។

def func_default_list_none(l=None, v=3):
    if l is None:
        l = [0, 1, 2]
    l.append(v)
    print(l)

func_default_list_none()
# [0, 1, 2, 3]

func_default_list_none()
# [0, 1, 2, 3]
Copied title and URL