0Pricing
Python Academy · Ders

Örnek Yöntemleri ve self

Nesnenin kendi verileri üzerinde çalışan yöntemler yazın.

Örnek Yöntemleri ve self, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 3. 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ş

Örnek yöntemleri, belirli bir nesnenin verileri üzerinde çalışır; özniteliklerine erişmek ve bunları değiştirmek için self kullanılır.

Örnek Yöntemlerini Tanımlama

Bir sınıfın içindeki def method(self): bir örnek yöntemidir. Nesneyi ilk bağımsız değişken (self) olarak alır.
class Circle:
    def __init__(self, r): self.r = r
    def area(self):
        import math
        return math.pi * self.r**2
print(Circle(5).area())

Yöntemleri Çağırma

obj.method(), ClassName.method(obj) ifadesinin daha kısa yazımıdır. Python, obj değerini self olarak otomatik aktarır.
class Dog:
    def __init__(self, name): self.name = name
    def bark(self): print(f'{self.name} says Woof!')
Dog('Rex').bark()

self Döndüren Yöntemler

self döndürmek yöntem zincirlemeyi sağlar: builder.set_name('x').set_age(3).build().
class Builder:
    def __init__(self): self.data = {}
    def set(self, k, v):
        self.data[k] = v
        return self
    def build(self): return self.data
result = Builder().set('x',1).set('y',2).build()
print(result)

Özel Yöntemler (Gelenek)

Dahili kullanımı belirtmek için _ ile başlayın. __ ile başlamak, ad dönüştürmeyi tetikler: _ClassName__method.
class Account:
    def __init__(self, bal): self._bal = bal
    def _validate(self, amount): return amount > 0
    def deposit(self, amount):
        if self._validate(amount):
            self._bal += amount
a = Account(100)
a.deposit(50)
print(a._bal)

Özellik Olarak Yöntemler

@property, bir yöntemi okunabilir bir özniteliğe dönüştürür. Erişirken parantez kullanmanız gerekmez.
class Circle:
    def __init__(self, r): self.r = r
    @property
    def diameter(self): return self.r * 2
c = Circle(5)
print(c.diameter)  # no ()

Durumu Değiştirme

self özniteliklerini değiştiren yöntemler, nesnenin durumunu değiştirir. Yöntemleri açık bir amaçla tasarlayın: sorgu mu, komut mu.
class Stack:
    def __init__(self): self.items = []
    def push(self, x): self.items.append(x)
    def pop(self): return self.items.pop()
    def peek(self): return self.items[-1]
s = Stack()
s.push(1); s.push(2)
print(s.pop(), s.peek())

Nesneleri Karşılaştırma

Varsayılan olarak ==, kimliği karşılaştırır. Değere göre karşılaştırma yapmak için __eq__ uygulayın.
class Point:
    def __init__(self, x, y): self.x,self.y=x,y
    def __eq__(self, other): return self.x==other.x and self.y==other.y
print(Point(1,2)==Point(1,2))

Yineleme Protokolü

Bir sınıfı yinelenebilir, yani for döngülerinde kullanılabilir hâle getirmek için __iter__ ve __next__ uygulayın.
class Countdown:
    def __init__(self, n): self.n = n
    def __iter__(self): return self
    def __next__(self):
        if self.n <= 0: raise StopIteration
        self.n -= 1; return self.n + 1
print(list(Countdown(3)))

Bağlam Yöneticisi Protokolü

Bir sınıfı with ifadelerinde kullanılabilir hâle getirmek için __enter__ ve __exit__ uygulayın.
class Timer:
    def __enter__(self):
        import time
        self.start = time.time()
        return self
    def __exit__(self, *args):
        import time
        print(f'elapsed: {time.time()-self.start:.3f}s')
with Timer(): pass

Yöntem ve İşlev Arasındaki Fark

Sınıf üzerinden erişildiğinde Dog.bark, sıradan bir işlevdir. Bir örnek üzerinden erişildiğinde d.bark, self değeri önceden doldurulmuş bağlı bir yöntemdir.
class Dog:
    def bark(self): print('woof')
print(type(Dog.bark))
print(type(Dog().bark))

Hızlı Denetim

Yöntem zincirleme nedir ve bunu desteklemek için bir yöntem ne döndürmelidir?

Özet

Örnek yöntemleri: def m(self). obj.m() olarak çağırın. Zincirleme için return self kullanın. __eq__/__iter__/__enter__/__exit__, protokolleri uygular. _ ön eki dahili kullanımı belirtir.

Devam Edin

Harika! Becerilerinizi geliştirmek için sonraki derse geçin.

Sıkça Sorulan Sorular

“Örnek Yöntemleri ve self” dersi ücretsiz mi?

Evet — “Örnek Yöntemleri ve self” 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.

“Örnek Yöntemleri ve self” dersinde ne öğreneceğim?

Nesnenin kendi verileri üzerinde çalışan yöntemler yazın. 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 3. dersidir.

“Örnek Yöntemleri ve self” 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. Sınıflar ve __init__ Yöntemi
  2. Örnek ve Sınıf Öznitelikleri
  3. Örnek Yöntemleri ve self
  4. Sihirli Yöntemler: __str__ ve __repr__
← Python Academy Sayfasına Dön