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

Python'da Nesne Yönelimli Programlamaya Giriş

George Boorman

Curriculum Manager, DataCamp

Yöntemler ve nitelikler

  • Yöntemler sınıf içindeki fonksiyon tanımlarıdır
  • İlk argüman olarak self
  • Nitelikleri atama ile tanımlayın
  • Sınıf içinden self.___ ile başvurun
  • Çok sayıda yöntem çağırmak sürdürülemez olabilir!
class MyClass:
    # sınıfta fonksiyon tanımı
    # ilk argüman self
    def my_method1(self, other_args...):
        # işlemler burada

def my_method2(self, my_attr): # atama ile nitelik oluşturulur self.my_attr = my_attr ...
Python'da Nesne Yönelimli Programlamaya Giriş

Kurucu

  • Nesne oluştururken veri ekleyin
  • Her nesne oluşturulduğunda kurucu __init__() çağrılır
    • __methodname__ söz dizimi nedeniyle otomatik çağrılır
class Customer:
    def __init__(self, name):
        # .name niteliğini oluştur ve name parametresine ayarla
        self.name = name
        print("The __init__ method was called")
Python'da Nesne Yönelimli Programlamaya Giriş

Kurucu

# __init__ örtük olarak çağrılır 
cust = Customer("Lara de Silva")   
print(cust.name)
The __init__ method was called
Lara de Silva
Python'da Nesne Yönelimli Programlamaya Giriş

Yöntemlerde nitelikler

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

    def my_method2(self, attr2):        
        self.attr2 = attr2
        ...

obj = MyClass() # attr1 oluşturuldu obj.my_method1(val1) # attr2 oluşturuldu obj.my_method2(val2)

Kurucuda nitelikler

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

# Tüm nitelikler oluşturulur obj = MyClass(val1, val2)
  • Genelde kurucuyu kullanmalıyız
  • Nitelikler nesne oluşturulurken oluşturulur
  • Daha kullanışlı ve sürdürülebilir kod
Python'da Nesne Yönelimli Programlamaya Giriş

Argüman ekleme

class Customer:
    # balance argümanını ekleyin
    def __init__(self, name, balance): 

self.name = name # balance niteliğini ekleyin self.balance = balance print("The __init__ method was called")
Python'da Nesne Yönelimli Programlamaya Giriş

Parametre ekleme

# __init__ çağrılır
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
Python'da Nesne Yönelimli Programlamaya Giriş

Varsayılan argümanlar

class Customer:
    # balance için varsayılan değer ayarlayın
    def __init__(self, name, balance=0):
        self.name = name
        # Yeni niteliği atayın
        self.balance = balance
        print("The __init__ method was called")
Python'da Nesne Yönelimli Programlamaya Giriş

Varsayılan argümanlar

# balance'ı açıkça belirtmeyin
cust = Customer("Lara de Silva")

print(cust.name) # balance niteliği yine de oluşturulur print(cust.balance)
The __init__ method was called
Lara de Silva
0
Python'da Nesne Yönelimli Programlamaya Giriş

En iyi uygulamalar

1. Nitelikleri __init__() içinde başlatın
Python'da Nesne Yönelimli Programlamaya Giriş

En iyi uygulamalar

1. Nitelikleri __init__() içinde başlatın
2. Adlandırma

Sınıflar için CamelCase, fonksiyon ve nitelikler için lower_snake_case

Python'da Nesne Yönelimli Programlamaya Giriş

En iyi uygulamalar

1. Nitelikleri __init__() içinde başlatın
2. Adlandırma

Sınıf için CamelCase, fonksiyon ve nitelikler için lower_snake_case

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

En iyi uygulamalar

1. Nitelikleri __init__() içinde başlatın
2. Adlandırma

Sınıf için CamelCase, fonksiyon ve nitelikler için lower_snake_case

3. self = self
4. Docstring kullanın
class MyClass:
    """Bu sınıf hiçbir şey yapmaz"""
    pass
Python'da Nesne Yönelimli Programlamaya Giriş

Ayo berlatih!

Python'da Nesne Yönelimli Programlamaya Giriş

Preparing Video For Download...