0Pricing
Python Academy · Pelajaran

Fungsi Parsial

Gunakan functools.partial

Fungsi Parsial adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Apa itu fungsi parsial?

functools.partial membuat fungsi baru dengan beberapa argumen dari fungsi yang sudah ada diisi terlebih dahulu. Ini seperti memuat argumen terlebih dahulu agar hasilnya dapat dipanggil dengan lebih sedikit argumen.

Impor dengan from functools import partial.

from functools import partial
def power(base, exp):
    return base ** exp
square = partial(power, exp=2)
print(square(5))

Menetapkan argumen posisional

Argumen posisional yang diteruskan ke partial mengisi parameter fungsi dari sebelah kiri. Argumen yang tersisa diberikan saat Anda memanggil fungsi parsial tersebut.

from functools import partial
def multiply(a, b):
    return a * b
double = partial(multiply, 2)
print(double(10))
print(double(50))

Menetapkan argumen kata kunci

Argumen kata kunci yang diberikan ke partial menjadi nilai bawaan yang masih dapat Anda ganti saat pemanggilan.

from functools import partial
def greet(name, greeting='Hello'):
    return greeting + ', ' + name
hola = partial(greet, greeting='Hola')
print(hola('Ada'))
print(hola('Bob', greeting='Hey'))

Fungsi parsial dengan fungsi bawaan

Anda juga dapat membuat fungsi parsial dari fungsi bawaan. Di sini, kita membuat pengurai bilangan bulat berbasis 2 dari int.

from functools import partial
binary = partial(int, base=2)
print(binary('1010'))
print(binary('1111'))

Fungsi panggilan balik yang lebih rapi

Fungsi parsial sangat berguna untuk fungsi panggilan balik ketika Anda harus meneruskan fungsi tanpa argumen atau dengan satu argumen, tetapi ingin memuat konteks terlebih dahulu.

from functools import partial
def log(level, message):
    return '[' + level + '] ' + message
error = partial(log, 'ERROR')
print(error('disk full'))

Fungsi parsial dalam pemetaan

Fungsi parsial dapat digunakan dengan rapi dalam fungsi tingkat tinggi seperti map, dengan menetapkan satu argumen sementara argumen lainnya berubah untuk setiap item.

from functools import partial
def add(a, b):
    return a + b
add10 = partial(add, 10)
print(list(map(add10, [1, 2, 3])))

Memeriksa fungsi parsial

Objek fungsi parsial menyediakan fungsi yang dibungkus melalui .func, argumen posisional yang ditetapkan melalui .args, dan kata kunci yang ditetapkan melalui .keywords.

from functools import partial
def f(a, b, c):
    return (a, b, c)
p = partial(f, 1, c=3)
print(p.func.__name__)
print(p.args)
print(p.keywords)

Menumpuk fungsi parsial

Anda dapat membuat fungsi parsial dari fungsi parsial lainnya, lalu menambahkan argumen yang ditetapkan secara bertahap.

from functools import partial
def volume(l, w, h):
    return l * w * h
base = partial(volume, 2)
slab = partial(base, 3)
print(slab(4))

Fungsi parsial dibandingkan dengan lambda

lambda dapat melakukan tugas yang sama, tetapi partial sering kali lebih jelas untuk menetapkan argumen dan menyediakan fungsi yang dibungkus untuk introspeksi.

from functools import partial
def power(base, exp):
    return base ** exp
cube_p = partial(power, exp=3)
cube_l = lambda b: power(b, 3)
print(cube_p(2), cube_l(2))

Contoh nyata: pembulatan

Buat fungsi pembulatan dua desimal dengan membuat fungsi parsial dari fungsi bawaan round.

from functools import partial
round2 = partial(round, ndigits=2)
print(round2(3.14159))
print(round2(2.71828))

partialmethod untuk kelas

functools.partialmethod yang terkait melakukan hal yang sama untuk metode di dalam definisi kelas, dengan mengisi argumen terlebih dahulu pada suatu metode.

from functools import partialmethod
class Light:
    def set(self, state):
        self.state = state
        return state
    on = partialmethod(set, True)
    off = partialmethod(set, False)
l = Light()
print(l.on())
print(l.off())

Pemeriksaan Singkat

Apa yang dilakukan functools.partial?

Ringkasan: Fungsi Parsial

Anda telah mempelajari bahwa functools.partial:

  • Membuat fungsi baru dengan beberapa argumen yang telah diisi (posisional atau kata kunci).
  • Memungkinkan Anda mengganti nilai bawaan kata kunci yang telah ditetapkan saat pemanggilan.
  • Sangat ideal untuk fungsi panggilan balik, map, dan mengurangi pengulangan.
  • Menyediakan .func, .args, .keywords, serta memiliki varian metode partialmethod.
from functools import partial
add = lambda a, b: a + b
plus1 = partial(add, 1)
print(plus1(41))

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fungsi Parsial” gratis?

Ya — teks lengkap “Fungsi Parsial” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Fungsi Parsial”?

Gunakan functools.partial Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Fungsi Parsial” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?

Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Fungsi Kelas Utama
  2. Closure dan Variabel Bebas
  3. nonlocal dan Keadaan yang Dapat Diubah
  4. Fungsi Parsial
← Kembali ke Python Academy