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

Bagaimanakah * dan Operator Membongkar Argumen dalam Panggilan Fungsi Python?

DDD
Lepaskan: 2024-12-29 18:31:11
asal
569 orang telah melayarinya

How Do * and  Operators Unpack Arguments in Python Function Calls?

Membongkar dalam Panggilan Fungsi Menggunakan dan Operator*

Python dan * pengendali memainkan peranan penting peranan dalam panggilan fungsi, membolehkan pembongkaran urutan, koleksi dan koleksi dengan mudah kamus.

Membongkar Urutan dan Koleksi dengan * (Bintang Tunggal)

Pengendali * (bintang tunggal) membongkar urutan atau koleksi ke dalam argumen kedudukan. Sebagai contoh, pertimbangkan kod berikut:

def add(a, b):
    return a + b

values = (1, 2)
s = add(*values)  # unpacks values into individual arguments
Salin selepas log masuk

Ini bersamaan dengan menulis:

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

Membuka Kamus dengan (Bintang Berganda)**

Pengendali ** (double star) melakukan operasi yang serupa untuk kamus, mengekstrak argumen bernama. Sebagai contoh, diberikan:

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

Ini bersamaan dengan:

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

Menggabungkan Operator untuk Membongkar Panggilan Fungsi

Kedua-duanya dan * operator boleh digunakan bersama dalam panggilan fungsi. Sebagai contoh, diberikan:

def sum(a, b, c, d):
    return a + b + c + d

values1 = (1, 2)
values2 = {'c': 10, 'd': 15}
s = add(*values1, **values2)  # combines sequence and dictionary unpacking
Salin selepas log masuk

Ini bersamaan dengan:

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

Implikasi Prestasi

Operasi membongkar dengan dan * menanggung sedikit overhed kerana tuple dan penciptaan kamus. Walau bagaimanapun, untuk set data yang kecil, impak prestasi biasanya boleh diabaikan. Untuk set data yang lebih besar, pertimbangkan kaedah alternatif untuk kecekapan, seperti menggunakan tuple dan pemahaman kamus.

Kegunaan Tambahan dalam Parameter Fungsi

  • dan boleh juga digunakan untuk menerima hujah pembolehubah panjang dalam parameter fungsi. Rujuk soalan pelengkap "Apakah yang dilakukan oleh (bintang berganda/asterisk) dan * (bintang/asterisk) untuk parameter?" untuk maklumat lanjut.

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

sumber:php.cn
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