0Pricing
Python Academy · Pelajaran

Fungsi sebagai Objek Kelas Satu

Pahami closure dan cara meneruskan fungsi sebagai argumen.

Fungsi sebagai Objek Kelas Satu adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Pendahuluan

Dalam Python, fungsi merupakan objek kelas satu: fungsi dapat diteruskan sebagai argumen, dikembalikan, dan disimpan dalam struktur data.

Fungsi adalah Objek

def double(x): return x*2 membuat objek fungsi. double hanyalah sebuah nama. Anda dapat menetapkannya: fn = double; fn(5) dapat digunakan.
def double(x): return x * 2
fn = double
print(fn(5))
print(type(fn))

Meneruskan Fungsi sebagai Argumen

def apply(func, val): return func(val) — func adalah argumen yang dapat dipanggil. Ini merupakan pemrograman tingkat tinggi.
def apply(func, val): return func(val)
print(apply(abs, -7))
print(apply(str, 42))

Menyimpan Fungsi dalam Kontainer

ops = [add, sub, mul] menyimpan objek fungsi dalam sebuah daftar. Lakukan iterasi dan panggil: for op in ops: op(a, b).
ops = [str.upper, str.lower, str.strip]
for op in ops:
    print(op('  Hello  '))

Mengembalikan Fungsi

Sebuah fungsi dapat mengembalikan fungsi lain. def make_adder(n): def adder(x): return x+n; return adder
def make_adder(n):
    def adder(x): return x + n
    return adder
add10 = make_adder(10)
print(add10(5), add10(20))

Closure

Closure menangkap variabel dari cakupan yang memuatnya. Fungsi bagian dalam "menutup cakupan" n dalam make_adder.
def counter(start=0):
    count = [start]
    def inc():
        count[0] += 1
        return count[0]
    return inc
c = counter()
print(c(), c(), c())

Lambda sebagai Fungsi Anonim

lambda x: x*2 adalah fungsi anonim dengan satu ekspresi. Ini berguna sebagai callback singkat, tetapi berikan nama jika logikanya tidak sederhana.
nums = [3, 1, 4, 1, 5]
print(sorted(nums, key=lambda x: -x))

map() dan filter()

map(func, iterable) menerapkan func pada setiap elemen. filter(pred, iterable) mempertahankan elemen yang nilai pred-nya adalah True.
nums = [1, 2, 3, 4, 5]
print(list(map(lambda x: x**2, nums)))
print(list(filter(lambda x: x%2==0, nums)))

functools.reduce()

reduce(func, seq) melipat sebuah urutan: reduce(lambda a,b: a+b, [1,2,3,4]) menghasilkan 10.
from functools import reduce
print(reduce(lambda a,b: a*b, [1,2,3,4,5]))

Pemeriksaan Fungsi yang Dapat Dipanggil

callable(obj) mengembalikan True jika obj dapat dipanggil. Fungsi, kelas, dan objek yang memiliki __call__ dapat dipanggil.
print(callable(print))
print(callable(42))
class C:
    def __call__(self): pass
print(callable(C()))

Introspeksi Fungsi

func.__name__, func.__doc__, func.__annotations__, inspect.signature(func) memberikan metadata tentang fungsi tersebut.
import inspect
def greet(name: str) -> str:
    '''Returns a greeting.'''
    return f'Hi {name}'
print(greet.__name__, greet.__annotations__)
print(inspect.signature(greet))

Pemeriksaan Singkat

Apa yang dimaksud dengan closure dalam Python?

Ringkasan

Fungsi adalah objek kelas satu. Fungsi dapat diteruskan sebagai argumen, dikembalikan dari fungsi, dan disimpan dalam kontainer. Closure menangkap cakupan yang memuatnya. Gunakan lambda untuk fungsi satu baris sederhana.

Lanjutkan

Kemajuan Anda sangat baik! Lanjutkan untuk menguasai konsep berikutnya.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Fungsi sebagai Objek Kelas Satu” gratis?

Ya — teks lengkap “Fungsi sebagai Objek Kelas Satu” 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 sebagai Objek Kelas Satu”?

Pahami closure dan cara meneruskan fungsi sebagai argumen. 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 1 dari 4.

Berapa lama pelajaran “Fungsi sebagai Objek Kelas Satu” 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 sebagai Objek Kelas Satu
  2. Menulis Decorator Kustom
  3. Decorator @property
  4. @classmethod dan @staticmethod
← Kembali ke Python Academy