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

Analisis ringkas tentang parameter fungsi Python

Lepaskan: 2023-07-25 16:24:55
ke hadapan
1252 orang telah melayarinya

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
Salin selepas log masuk

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
Salin selepas log masuk

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
Salin selepas log masuk


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]))
Salin selepas log masuk

Analisis ringkas tentang parameter fungsi Python

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

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

nums = [1, 2, 3]


calc(*nums)
Salin selepas log masuk

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)
Salin selepas log masuk

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

person('Michael', 30)
Salin selepas log masuk

运行结果:

Analisis ringkas tentang parameter fungsi Python

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

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

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!

Label berkaitan:
sumber:Go语言进阶学习
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan