0Pricing
Python Academy · Ders

Birinci Sınıf Nesneler Olarak İşlevler

Kapanışları ve işlevleri bağımsız değişken olarak geçirmeyi öğrenin.

Birinci Sınıf Nesneler Olarak İşlevler, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Python Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Python Academy kursu toplamda 4 dersten oluşur.

Giriş

Python'da işlevler birinci sınıf nesnelerdir: bağımsız değişken olarak aktarılabilir, döndürülebilir ve veri yapılarında saklanabilirler.

İşlevler Nesnedir

def double(x): return x*2 bir işlev nesnesi oluşturur. double yalnızca bir addır. Şöyle atayabilirsiniz: fn = double; fn(5) çalışır.
def double(x): return x * 2
fn = double
print(fn(5))
print(type(fn))

İşlevleri Bağımsız Değişken Olarak Aktarma

def apply(func, val): return func(val) — func, çağrılabilir bir bağımsız değişkendir. Bu, üst düzey programlamadır.
def apply(func, val): return func(val)
print(apply(abs, -7))
print(apply(str, 42))

İşlevleri Kapsayıcılarda Saklama

ops = [add, sub, mul], işlev nesnelerini bir listede saklar. Yineleyip çağırın: for op in ops: op(a, b).
ops = [str.upper, str.lower, str.strip]
for op in ops:
    print(op('  Hello  '))

İşlev Döndürme

Bir işlev başka bir işlev döndürebilir. 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))

Kapanışlar

Bir kapanış, çevreleyen kapsamdaki değişkenleri yakalar. İç işlev, make_adder içindeki n değişkeni üzerinde kapanış oluşturur.
def counter(start=0):
    count = [start]
    def inc():
        count[0] += 1
        return count[0]
    return inc
c = counter()
print(c(), c(), c())

Anonim İşlev Olarak Lambda

lambda x: x*2, tek ifadeli anonim bir işlevdir. Kısa geri çağırmalar için kullanışlıdır; ancak mantık karmaşıksa işlevi adlandırın.
nums = [3, 1, 4, 1, 5]
print(sorted(nums, key=lambda x: -x))

map() ve filter()

map(func, iterable), func işlevini her öğeye uygular. filter(pred, iterable), pred değerinin True olduğu öğeleri korur.
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), bir diziyi tek bir sonuca indirger: reduce(lambda a,b: a+b, [1,2,3,4]) sonucu 10'dur.
from functools import reduce
print(reduce(lambda a,b: a*b, [1,2,3,4,5]))

Çağrılabilirlik Denetimi

callable(obj), obj'nin çağrılıp çağrılamayacağını belirtmek için True döndürür. İşlevler, sınıflar ve __call__ yöntemine sahip nesneler çağrılabilirdir.
print(callable(print))
print(callable(42))
class C:
    def __call__(self): pass
print(callable(C()))

İşlev İçgözlemi

func.__name__, func.__doc__, func.__annotations__, inspect.signature(func), işlevle ilgili üst verileri sağlar.
import inspect
def greet(name: str) -> str:
    '''Returns a greeting.'''
    return f'Hi {name}'
print(greet.__name__, greet.__annotations__)
print(inspect.signature(greet))

Hızlı Yoklama

Python'da kapanış nedir?

Özet

İşlevler birinci sınıf nesnelerdir. Bağımsız değişken olarak aktarılabilir, işlevlerden döndürülebilir ve kapsayıcılarda saklanabilirler. Kapanışlar çevreleyen kapsamı yakalar. Basit tek satırlık işlevler için lambda kullanılır.

Devam Edin

Mükemmel ilerliyorsunuz! Bir sonraki kavramda ustalaşmak için devam edin.

Sıkça Sorulan Sorular

“Birinci Sınıf Nesneler Olarak İşlevler” dersi ücretsiz mi?

Evet — “Birinci Sınıf Nesneler Olarak İşlevler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Python Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Python Academy kursu toplamda 4 dersten oluşur.

“Birinci Sınıf Nesneler Olarak İşlevler” dersinde ne öğreneceğim?

Kapanışları ve işlevleri bağımsız değişken olarak geçirmeyi öğrenin. Python Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Python Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Python Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Birinci Sınıf Nesneler Olarak İşlevler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Python Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Python Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Birinci Sınıf Nesneler Olarak İşlevler
  2. Özel Dekoratörler Yazma
  3. @property Dekoratörü
  4. @classmethod ve @staticmethod
← Python Academy Sayfasına Dön