Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Asterisk Tunggal dan Berganda (*) Membongkar Argumen dalam Fungsi Python?

Bagaimanakah Asterisk Tunggal dan Berganda (*) Membongkar Argumen dalam Fungsi Python?

DDD
Lepaskan: 2024-12-20 11:08:09
asal
753 orang telah melayarinya

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

Membuka Hujah dalam Python dengan dan (Double Star/Asterisk)*

Dalam Python, dan * operator memainkan peranan penting dalam membongkar hujah semasa membuat panggilan fungsi.

Bintang Tunggal *:
Bintang tunggal (*) membongkar urutan atau koleksi ke dalam argumen kedudukan. Sebagai contoh, pertimbangkan fungsi:

def add(a, b):
    return a + b
Salin selepas log masuk

Kod di bawah menggunakan * untuk membongkar nilai tuple:

values = (1, 2)
s = add(*values)
Salin selepas log masuk

Ini bersamaan dengan menulis:

s = add(1, 2)
Salin selepas log masuk

Double Star **:
Double Star (**) melakukan operasi yang serupa untuk kamus, menyediakan nilai untuk hujah yang dinamakan. Pertimbangkan fungsi:

def sum(a, b, c, d):
    return a + b + c + d
Salin selepas log masuk

Membuka pembungkusan nilai kamus2 menggunakan ** menghasilkan yang berikut:

values2 = { 'c': 10, 'd': 15 }
s = add(**values2)
Salin selepas log masuk

Ini bersamaan dengan:

s = sum(a=1, b=2, c=10, d=15)
Salin selepas log masuk

Gabungan dan :*
Kedua-duanya dan * boleh digunakan serentak dalam panggilan fungsi yang sama. Contohnya:

values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
s = add(*values1, **values2)
Salin selepas log masuk

Ini bersamaan dengan:

s = sum(1, 2, c=10, d=15)
Salin selepas log masuk

Pembukaan Parameter:
Selain membongkar hujah, dan * juga boleh digunakan untuk membongkar parameter dalam fungsi takrifan.

  • Parameter yang ditandakan dengan * menerima sebarang bilangan argumen kedudukan sebagai tuple.
  • Parameter yang ditandakan dengan ** menerima semua argumen kata kunci sebagai kamus.

Contohnya:

def add(*values):
    # ...

def get_a(**values):
    # ...
Salin selepas log masuk

Prestasi Implikasi:
Implikasi prestasi penggunaan dan * secara amnya adalah minimum. Operasi pembongkaran melibatkan overhed minimum dan tidak menjejaskan kecekapan fungsi itu sendiri. Walau bagaimanapun, pembongkaran yang berlebihan boleh menjadikan kod kurang boleh dibaca dan diselenggara.

Atas ialah kandungan terperinci Bagaimanakah Asterisk Tunggal dan Berganda (*) Membongkar Argumen dalam Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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