Python'da Nesne Yönelimli Programlama
Alex Yarosh
Content Quality Analyst @ DataCamp
selfself.___ 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
...
__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
class Customer: def __init__(self, name, balance): # <-- balance parametresi eklendiself.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
class Customer: def __init__(self, name, balance=0): #<-- balance için varsayılan değer ayarlaself.name = name self.balance = balance print("__init__ yöntemi çağrıldı")cust = Customer("Lara de Silva") # <-- balance'ı açıkça belirtmeyinprint(cust.name) print(cust.balance) # <-- öznitelik yine de oluşturulur
__init__ yöntemi çağrıldı
Lara de Silva
0
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
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# Tüm öznitelikler oluşturuldu obj = MyClass(val1, val2)
__init__() içinde başlatın__init__() içinde başlatınSınıflar için CamelCase, fonksiyonlar ve öznitelikler için lower_snake_case
__init__() içinde başlatınSınıflar için CamelCase, fonksiyonlar ve öznitelikler için lower_snake_case
self olarak self kullanınclass MyClass:
# Bu çalışır ama önerilmez
def my_method(kitty, attr):
kitty.attr = attr
__init__() içinde başlatınSınıflar için CamelCase, fonksiyonlar ve öznitelikler için lower_snake_case
self olarak selfclass MyClass:
"""Bu sınıf hiçbir şey yapmaz"""
pass
Python'da Nesne Yönelimli Programlama