Merhabalar,
Programlamaya kendi başıma python ile başladım. Kaynak olarak Fırat Özgül’ün kitabını kullanıyorum. Sınıf metodu oluşturma konusunda anlamadığım bir nokta var. Üzerine biraz düşündüm ama bir sonuca varamadım, forumda size danışayım dedim.
Kitapta konuya giriş kısmında sınıfın niteliğine örnek kullanmadan erişmek için sınıfın dışında fonksiyon tanımlamıştı, ancak import ederken bunun sıkıntı çıkardığını göstermişti. Bende bu fonksiyonu sınıf bloğunun içine alıp kullanmayı denemiştim ve çalışmıştı (personeli_görüntüle ve personel_sayısını_görüntüle fonksiyonları için):
class Çalışan():
personel = []
def __init__(self, isim):
self.isim = isim
self.kabiliyetleri = []
self.personele_ekle()
def personele_ekle(self):
self.personel.append(self.isim)
print('{} adlı kişi personele eklendi'.format(self.isim))
def personeli_görüntüle():
print('Personel listesi:')
for kişi in Çalışan.personel:
print(kişi)
def personel_sayısını_görüntüle():
print(len(Çalışan.personel))
def kabiliyet_ekle(self, kabiliyet):
self.kabiliyetleri.append(kabiliyet)
def kabiliyetleri_görüntüle(self):
print('{} adlı kişinin kabiliyetleri:'.format(self.isim))
for kabiliyet in self.kabiliyetleri:
print(kabiliyet)
Daha sonra kitap sınıf metodunu ‘@classmethod’ kullanarak oluşturmayı öğretti:
Anlamadığım kısım, benim yukarıdaki denediğim şekildede aynı şey yapılabiliyor. Sınıf metodunu ‘@classmethod’ kullanarak oluşturmanın ne faydası yada farkı var? Benim denediğim şekilde yazılan kodların eksik var mıdır ya da program içinde garip hatalara yol açar mı?