Baca artikel lengkap mengenai Global News One
functools.partial mencipta fungsi baharu dengan menggunakan sebahagian argumen pada fungsi sedia ada. Ini berguna untuk memudahkan panggilan fungsi dalam senario di mana argumen tertentu berulang atau tetap.
Fungsi functools.partial dalam Python membolehkan anda "membekukan" beberapa bahagian hujah atau kata kunci fungsi, mencipta fungsi baharu dengan parameter yang lebih sedikit. Ia amat berguna apabila anda ingin membetulkan parameter tertentu sesuatu fungsi sambil memastikan yang lain fleksibel.
from functools import partial
partial(func, *args, **kwargs)
Objek yang dikembalikan ialah fungsi baharu dengan argumen tetap adalah "beku", dan anda hanya perlu membekalkan yang selebihnya apabila memanggil fungsi baharu.
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
Di sini, separa mencipta petak fungsi baharu yang sentiasa menggunakan eksponen=2.
Andaikan anda mempunyai fungsi dengan berbilang argumen dan anda sering memanggilnya dengan beberapa nilai tetap.
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
Anda boleh menggunakan separa untuk menyesuaikan fungsi untuk operasi seperti peta.
def multiply(x, y): return x * y # Fix y = 10 multiply_by_10 = partial(multiply, y=10) # Use in a map numbers = [1, 2, 3, 4] result = map(multiply_by_10, numbers) print(list(result)) # Output: [10, 20, 30, 40]
Sebahagian berfungsi dengan lancar dengan fungsi yang sudah mempunyai argumen lalai.
def add(a, b=10): return a + b # Fix b to 20 add_with_20 = partial(add, b=20) print(add_with_20(5)) # Output: 25
Anda boleh menggunakan separa dengan perpustakaan seperti Panda untuk memudahkan operasi berulang.
from functools import partial
partial(func, *args, **kwargs)
def power(base, exponent): return base ** exponent # Create a square function by fixing exponent = 2 square = partial(power, exponent=2) # Now, square() only needs the base print(square(5)) # Output: 25 print(square(10)) # Output: 100
def greet(greeting, name): return f"{greeting}, {name}!" # Fix the greeting say_hello = partial(greet, greeting="Hello") say_goodbye = partial(greet, greeting="Goodbye") print(say_hello("Alice")) # Output: Hello, Alice! print(say_goodbye("Alice")) # Output: Goodbye, Alice!
Menggunakan functools.partial boleh memudahkan dan membersihkan kod anda, terutamanya apabila berurusan dengan panggilan fungsi berulang atau fungsi peringkat lebih tinggi. Beritahu saya jika anda mahukan lebih banyak contoh atau kes penggunaan lanjutan!
Atas ialah kandungan terperinci Apakah `functools.partial` dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!