0Pricing
Python Academy · Ders

Örnek ve Sınıf Öznitelikleri

Nesneye özel verilerle sınıf düzeyinde paylaşılan veriler arasındaki farkı öğrenin.

Örnek ve Sınıf Öznitelikleri, CoddyKit'te ücretsiz bir Python Academy dersidir. Bu, 4 dersinin 2. 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 ve sınıf öznitelikleri arasındaki farkı anlamak, ince hataları önler ve verimli paylaşılan durum kullanımını sağlar.

Sınıf Özniteliği

class Dog: legs = 4 — legs tüm örnekler tarafından paylaşılır. Dog.legs veya dog.legs olarak erişin.
class Dog:
    legs = 4
print(Dog.legs)
print(Dog().legs)

Örnek Özniteliği

self.name = name in __init__ örneğe özeldir. Her Dog kendi name değerine sahiptir.
class Dog:
    def __init__(self, name):
        self.name = name
d1 = Dog('Rex')
d2 = Dog('Buddy')
print(d1.name, d2.name)

Öznitelik Arama Sırası

Python önce örneğin __dict__ sözlüğünü, ardından sınıfın __dict__ sözlüğünü, sonra da temel sınıfları denetler. Örnek öznitelikleri, sınıf özniteliklerini gölgeler.
class C:
    x = 10
c = C()
c.x = 99  # instance shadows class attr
print(c.x)  # 99
print(C.x)  # 10

Değiştirilebilir Sınıf Özniteliği Tuzağı

class C: items = [] — ALL örnekler aynı listeyi paylaşır. Bir örneğe ekleme yapmak hepsini etkiler!
class C:
    items = []
C.items.append(1)
print(C().items)  # [1] — shared!

Değiştirilebilirlik Tuzağını Çözme

Başlatmayı __init__ içine taşıyın: def __init__(self): self.items = [] Her örnek kendi listesini alır.
class C:
    def __init__(self):
        self.items = []
c1 = C(); c2 = C()
c1.items.append(1)
print(c1.items, c2.items)

__dict__ İncelemesi

obj.__dict__ örneğin öznitelik sözlüğüdür. Class.__dict__ sınıfın öznitelik sözlüğüdür.
class Dog:
    legs = 4
    def __init__(self, name): self.name = name
d = Dog('Rex')
print(d.__dict__)
print(Dog.__dict__.keys())

Fabrika Olarak Sınıf Yöntemleri

@classmethod, self yerine cls değerini (sınıfı) alır. Alternatif oluşturucular olarak kullanın.
class Date:
    def __init__(self, y, m, d): self.y,self.m,self.d=y,m,d
    @classmethod
    def from_string(cls, s):
        y,m,d=map(int,s.split('-'))
        return cls(y,m,d)
dt=Date.from_string('2024-01-15')
print(dt.y,dt.m,dt.d)

Statik Yöntemler

@staticmethod, self veya cls almaz. Bir sınıfla mantıksal olarak gruplandırılmış, ancak örneğe ya da sınıfa ihtiyaç duymayan yardımcı işlevler için kullanın.
class MathUtils:
    @staticmethod
    def add(a, b): return a + b
print(MathUtils.add(3, 4))

Sınıf Özniteliğiyle Örnekleri İzleme

Sayaç olarak kullanılan bir sınıf özniteliği, kaç örnek oluşturulduğunu izler.
class Widget:
    count = 0
    def __init__(self):
        Widget.count += 1
Widget(); Widget(); Widget()
print(Widget.count)

hasattr() ve vars()

hasattr(obj, 'name') özniteliğin varlığını denetler. vars(obj), obj.__dict__ ile eşdeğerdir.
class P:
    def __init__(self, x): self.x = x
p = P(5)
print(hasattr(p, 'x'), hasattr(p, 'z'))
print(vars(p))

Hızlı Denetim

Bir örnekten değiştirilebilir bir sınıf özniteliği listesine ekleme yaptığınızda ne olur?

Özet

Sınıf öznitelikleri paylaşılır; örnek öznitelikleri nesneye özeldir. Örnek araması, sınıf aramasını gölgeler. Değiştirilebilir değerleri __init__ içinde başlatın. Fabrika yöntemleri için @classmethod kullanın.

Devam Edin

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

Sıkça Sorulan Sorular

“Örnek ve Sınıf Öznitelikleri” dersi ücretsiz mi?

Evet — “Örnek ve Sınıf Öznitelikleri” 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 ve Sınıf Öznitelikleri” dersinde ne öğreneceğim?

Nesneye özel verilerle sınıf düzeyinde paylaşılan veriler arasındaki farkı öğ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 2. dersidir.

“Örnek ve Sınıf Öznitelikleri” 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