Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Analisis ringkas tentang parameter fungsi Python

Analisis ringkas tentang parameter fungsi Python

Go语言进阶学习
Go语言进阶学习ke hadapan
2023-07-25 16:24:551182semak imbas

1. Pengenalan

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.


2. Parameter pembolehubah

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

Jika Menggunakan parameter berubah, cara untuk memanggil fungsi boleh dipermudahkan kepada ini:

Analisis ringkas tentang parameter fungsi Python

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


Bagaimana jika sudah ada senarai atau tuple dan anda mahu memanggil parameter berubah?

例:

nums = [1, 2, 3]


print(calc(nums[0], nums[1], nums[2]))

Analisis ringkas tentang parameter fungsi Python

这种写法当然是可行的,问题是太繁琐。

所以Python允许在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

nums = [1, 2, 3]


calc(*nums)

Analisis ringkas tentang parameter fungsi Python

*nums表示把nums这个list的所有元素作为可变参数传进去。这种写法相当有用,而且很常见。


三、关键字参数

可变参数允许传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。

而关键字参数允许传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:

def person(name, age, **kw):    
  print('name:', name, 'age:', age, 'other:', kw)

函数person除了必选参数name和age外,还接受关键字参数kw。在调用该函数时,可以只传入必选参数:

person('Michael', 30)

运行结果:

Analisis ringkas tentang parameter fungsi Python

也可以传入任意个数的关键字参数:

extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)

Analisis ringkas tentang parameter fungsi Python

关键字参数有什么用?

它可以扩展函数的功能。

比如,在person函数里,保证能接收到name和age这两个参数,但是,如果调用者愿意提供更多的参数,也能收到。

试想正在做一个用户注册的功能,除了用户名和年龄是必填项外,其他都是可选项,利用关键字参数来定义这个函数就能满足注册的需求。

extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是extra的一份拷贝,对kw的改动不会影响到函数外的extra。


4. Ringkasan

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!

Kenyataan:
Artikel ini dikembalikan pada:Go语言进阶学习. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Asas Python dan jenis dataArtikel seterusnya:Asas Python dan jenis data