Daha önce kullanmadığım bir Django uygulamasını entegre ederken, sınıflarda işlevleri tanımlamak için kullanılan iki farklı yol buldum. Yazar ikisini de çok isteyerek kullanıyor gibi görünüyor. İlki benim çok kullandığım şey:
class Dummy(object):
def some_function(self,*args,**kwargs):
do something here
self is the class instance
Diğeri ise kullanmadığım, çoğunlukla ne zaman kullanacağımı ve ne için kullanacağımı anlamadığım için:
class Dummy(object):
@classmethod
def some_function(cls,*args,**kwargs):
do something here
cls refers to what?
Python belgelerinde, classmethoddekoratör şu cümleyle açıklanmıştır:
Bir sınıf yöntemi, bir örnek yönteminin örneği aldığı gibi, sınıfı örtük ilk bağımsız değişken olarak alır.
Bu yüzden sanırım kendine clsatıfta bulunuyor Dummy( classörneğe değil). Bunun neden var olduğunu tam olarak anlamıyorum, çünkü bunu her zaman yapabilirim:
type(self).do_something_with_the_class
Bu sadece açıklık olsun diye mi yoksa en önemli kısmı mı kaçırdım: onsuz yapılamayacak ürkütücü ve büyüleyici şeyler?