Takrifan fungsi Python sangat mudah, tetapi ia sangat fleksibel. Sebagai tambahan kepada parameter yang ditakrifkan secara normal, anda juga boleh menggunakan parameter lalai, parameter pembolehubah dan parameter kata kunci, supaya antara muka yang ditakrifkan oleh fungsi bukan sahaja boleh mengendalikan parameter kompleks, tetapi juga memudahkan kod pemanggil.
Dalam fungsi Python, anda juga boleh mentakrifkan parameter berubah. Seperti namanya, parameter pembolehubah bermakna bilangan parameter yang dilalui adalah berubah-ubah, boleh jadi 1, 2, atau sebarang nombor, atau boleh jadi 0.
Kes: Sila kira a2 + b2 + …. Ambil masalah matematik sebagai contoh, diberi set nombor a, b, c...,
Untuk mentakrifkan fungsi ini, parameter input mesti ditentukan. Oleh kerana bilangan parameter tidak pasti, saya mula-mula terfikir bahawa a, b, c... boleh dihantar sebagai senarai atau tuple.
Fungsinya boleh ditakrifkan seperti berikut:
def calc(numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
Tetapi apabila membuat panggilan, anda perlu memasang senarai atau tuple terlebih dahulu: pemudahan
Jadi, tukar parameter fungsi kepada parameter berubah: print(calc([1, 2, 3]))
#结果:14
print(calc((1, 3, 5, 7))
#结果:84
Berbanding dengan mentakrifkan parameter senarai atau tuple , menentukan parameter pembolehubah, cuma tambah tanda * di hadapan parameter.
Di dalam fungsi, nombor parameter menerima tuple, jadi kod fungsi kekal tidak berubah sama sekali. Walau bagaimanapun, apabila memanggil fungsi ini, anda boleh memasukkan sebarang bilangan parameter, termasuk 0 parameter:
def calc(*numbers): sum = 0 for n in numbers: sum = sum + n * n return sum
例: 这种写法当然是可行的,问题是太繁琐。 所以Python允许在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去: *nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。 可变参数允许传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。 而关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例: 函数person除了必选参数name和age外,还接受关键字参数kw。在调用该函数时,可以只传入必选参数: 运行结果: 也可以传入任意个数的关键字参数: 关键字参数有什么用? 它可以扩展函数的功能。 比如,在person函数里,保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,也能收到。 试想正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。 extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。 Artikel ini berdasarkan asas Python dan memperkenalkan parameter fungsi Python. Fungsi Python mempunyai bentuk parameter yang sangat fleksibel, yang bukan sahaja boleh melaksanakan panggilan mudah, tetapi juga lulus dalam parameter yang sangat kompleks. Memperkenalkan parameter pembolehubah biasa dan parameter kata kunci. Atas ialah kandungan terperinci Analisis ringkas tentang parameter fungsi Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!nums = [1, 2, 3]
print(calc(nums[0], nums[1], nums[2]))
nums = [1, 2, 3]
calc(*nums)
三、关键字参数
def person(name, age, **kw):
print('name:', name, 'age:', age, 'other:', kw)
person('Michael', 30)
extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)
4. Ringkasan