Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana * dan Membongkar Argumen dalam Panggilan Fungsi Python?

Bagaimana * dan Membongkar Argumen dalam Panggilan Fungsi Python?

DDD
Lepaskan: 2024-12-22 09:01:13
asal
416 orang telah melayarinya

How Do * and  Unpack Arguments in Python Function Calls?

Membongkar Argumen dengan dan dalam Panggilan Fungsi Python*

Dalam panggilan fungsi Python, asterisk ( ) dan pengendali asterisk berganda (*) memainkan peranan penting dalam membongkar jujukan dan kamus ke dalam argumen kedudukan atau dinamakan, masing-masing.

Bintang Tunggal (*) Membongkar:

Operator asterisk tunggal (*) membongkar urutan atau koleksi ke dalam argumen kedudukan. Pertimbangkan fungsi berikut:

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

Memandangkan satu tuple nilai nilai = (1, 2), kita boleh membongkar tuple dan menghantar elemennya ke fungsi tambah menggunakan operator *:

s = add(*values)
Salin selepas log masuk

Ini bersamaan dengan penulisan:

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

Double Star () Membongkar:**

Pengendali asterisk berganda (**) mengikut prinsip yang sama tetapi beroperasi pada kamus. Ia membongkar pasangan nilai kunci kamus ke dalam argumen bernama:

values = { 'a': 1, 'b': 2 }
s = add(**values)
Salin selepas log masuk

Ini bersamaan dengan:

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

Pembukaan Gabungan:

Kedua-dua pengendali boleh digunakan secara serentak dalam satu panggilan fungsi. Sebagai contoh, diberikan fungsi:

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

Dan dua set nilai:

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

Kita boleh membongkar nilai ini seperti berikut:

s = add(*values1, **values2)
Salin selepas log masuk

Ini ialah bersamaan dengan:

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

Prestasi Implikasi:

Menggunakan operator pembongkaran dan * umumnya mempunyai implikasi prestasi yang minimum. Walau bagaimanapun, jika urutan atau kamus yang dibongkar adalah besar, overhed tambahan mungkin ditanggung semasa proses membongkar. Ini boleh diabaikan untuk kebanyakan senario praktikal.

Kaedah Setara:

Sebagai alternatif kepada menggunakan operator pembongkaran, anda juga boleh menggunakan sintaks *args dan **kwargs , masing-masing:

def add(*args, **kwargs):
    s = 0
    for arg in args:
        s += arg
    for key, value in kwargs.items():
        s += value
Salin selepas log masuk

Akhirnya, pilihan antara menggunakan operator pembongkaran atau *args/**kwargs bergantung pada gaya dan pilihan kod anda.

Atas ialah kandungan terperinci Bagaimana * dan Membongkar Argumen dalam Panggilan 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