Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bolehkah Fungsi dengan Argumen Diteruskan kepada Fungsi Lain dalam Python?

Bolehkah Fungsi dengan Argumen Diteruskan kepada Fungsi Lain dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-10-23 07:13:30652semak imbas

Can Functions with Arguments Be Passed to Other Functions in Python?

Menyalurkan Fungsi dengan Argumen kepada Fungsi Lain dalam Python

Masalah:

Adakah ia boleh dilaksanakan untuk menghantar fungsi dengan hujah ke fungsi lain dalam Python? Sebagai contoh, kami ingin mempunyai fungsi yang dipanggil perform yang menerima fungsi lain sebagai argumen. Fungsi yang diluluskan ini boleh mempunyai bilangan parameter yang berbeza-beza, seperti action1(), action2(p) dan action3(p,r).

Penyelesaian:

Ya , ia boleh dilakukan dalam Python menggunakan senarai argumen panjang pembolehubah (*args). Begini cara anda boleh mencapainya:

<code class="python">def perform(fun, *args):
    fun(*args)

def action1(args):
    # Code for action1

def action2(args):
    # Code for action2

def action3(args, r):
    # Code for action3

perform(action1)       # No arguments
perform(action2, p)     # One argument
perform(action3, p, r)  # Two arguments</code>

Dalam contoh ini, fungsi perform mengambil fungsi fun dan bilangan arbitrari argumen kedudukan *args. Ia kemudian memanggil fungsi yang diluluskan itu menyeronokkan dengan argumen yang disediakan.

Dengan menggunakan *args, anda boleh menghantar fungsi dengan sebarang bilangan argumen kepada fungsi perform. Argumen akan dibongkar secara automatik dan dihantar ke fungsi asas.

Atas ialah kandungan terperinci Bolehkah Fungsi dengan Argumen Diteruskan kepada Fungsi Lain dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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