Sınıf yapısı: __init__ yapıcı

Python'da Nesne Yönelimli Programlama

Alex Yarosh

Content Quality Analyst @ DataCamp

Yöntemler ve öznitelikler

  • Yöntemler, sınıf içindeki fonksiyon tanımlarıdır
  • İlk argüman olarak self
  • Öznitelikleri atama ile tanımlayın
  • Sınıftaki özniteliklere self.___ ile başvurun

   

class MyClass:
    # sınıfta fonksiyon tanımı
    # ilk argüman self
    def my_method1(self, other_args...):
        # burada işlemler yapın

    def my_method2(self, my_attr):        
        # atama ile öznitelik oluşturuldu
        self.my_attr = my_attr
        ...
Python'da Nesne Yönelimli Programlama

Yapıcı

  • Nesne oluştururken veri eklemek mi?
  • Yapıcı __init__() yöntemi her nesne oluşturulduğunda çağrılır.
class Customer:
       def __init__(self, name):     
        self.name = name           # <--- .name özniteliğini oluştur ve name parametresine ayarla
        print("__init__ yöntemi çağrıldı")

cust = Customer("Lara de Silva") #<--- __init__ otomatik olarak çağrılır print(cust.name)
__init__ yöntemi çağrıldı
Lara de Silva
Python'da Nesne Yönelimli Programlama
class Customer:
       def __init__(self, name, balance):  # <-- balance parametresi eklendi

self.name = name self.balance = balance # <-- balance özniteliği eklendi print("__init__ yöntemi çağrıldı")
cust = Customer("Lara de Silva", 1000) # <-- __init__ çağrılır print(cust.name) print(cust.balance)
__init__ yöntemi çağrıldı
Lara de Silva
1000
Python'da Nesne Yönelimli Programlama
class Customer:
       def __init__(self, name, balance=0):  #<-- balance için varsayılan değer ayarla

self.name = name self.balance = balance print("__init__ yöntemi çağrıldı")
cust = Customer("Lara de Silva") # <-- balance'ı açıkça belirtmeyin
print(cust.name) print(cust.balance) # <-- öznitelik yine de oluşturulur
__init__ yöntemi çağrıldı
Lara de Silva
0
Python'da Nesne Yönelimli Programlama

Yöntemlerdeki öznitelikler

class MyClass:
    def my_method1(self, attr1):
        self.attr1 = attr1
        ...

    def my_method2(self, attr2):        
        self.attr2 = attr2
        ...
obj = MyClass()
obj.my_method1(val1) # <-- attr1 oluşturuldu
obj.my_method2(val2) # <-- attr2 oluşturuldu

Yapıcıdaki öznitelikler

class MyClass:
    def __init__(self, attr1, attr2):
        self.attr1 = attr1
        self.attr2 = attr2
        ...

# Tüm öznitelikler oluşturuldu obj = MyClass(val1, val2)
  • tüm öznitelikleri bilmek daha kolay
  • öznitelikler nesne oluşturulurken yaratılır
  • daha kullanışlı ve sürdürülebilir kod
Python'da Nesne Yönelimli Programlama

En iyi uygulamalar

1. Öznitelikleri __init__() içinde başlatın
Python'da Nesne Yönelimli Programlama

En iyi uygulamalar

1. Öznitelikleri __init__() içinde başlatın
2. İsimlendirme

Sınıflar için CamelCase, fonksiyonlar ve öznitelikler için lower_snake_case

Python'da Nesne Yönelimli Programlama

En iyi uygulamalar

1. Öznitelikleri __init__() içinde başlatın
2. İsimlendirme

Sınıflar için CamelCase, fonksiyonlar ve öznitelikler için lower_snake_case

3. self olarak self kullanın
class MyClass:
    # Bu çalışır ama önerilmez
    def my_method(kitty, attr):
       kitty.attr = attr
Python'da Nesne Yönelimli Programlama

En iyi uygulamalar

1. Öznitelikleri __init__() içinde başlatın
2. İsimlendirme

Sınıflar için CamelCase, fonksiyonlar ve öznitelikler için lower_snake_case

3. self olarak self
4. Doküman dizgileri kullanın
class MyClass:
    """Bu sınıf hiçbir şey yapmaz"""
    pass
Python'da Nesne Yönelimli Programlama

Hadi pratik yapalım!

Python'da Nesne Yönelimli Programlama

Preparing Video For Download...