Cara Mengikat Argumen kepada Fungsi Python
Dalam Python, seseorang boleh menghadapi situasi di mana pengikat argumen kepada fungsi diperlukan untuk pelaksanaan kemudian tanpa memerlukan hujah tambahan. Pertimbangkan contoh:
def add(x, y): return x + y add_5 = magic_function(add, 5) assert add_5(3) == 8
Dalam senario ini, kita perlu menentukan fungsi_magik yang boleh mengikat hujah 5 kepada fungsi tambah.
Penyelesaian terletak pada penggunaan modul functools.partial :
import functools add_5 = functools.partial(add, 5) # Bind '5' as the first argument to 'add' assert add_5(3) == 8 # Call 'add_5' with '3' as the second argument
functools.separa berkesan mencipta objek boleh panggil yang membungkus fungsi asal dengan hujah yang telah ditetapkan. Ini membolehkan kami melaksanakan fungsi itu kemudian tanpa memberikan hujah tetap secara eksplisit.
Kod berikut menunjukkan pendekatan yang setara menggunakan ungkapan lambda:
print_hello = lambda *a, **kw: sys.stdout.write("Hello world\n", *a, **kw)
Di sini, hujah untuk print_hello ialah diperlakukan seolah-olah mereka diberikan kepada sys.stdout.write, membenarkan hujah fleksibel berlalu semasa pelaksanaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Pratetapkan Argumen untuk Fungsi Python Menggunakan `functools.partial`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!