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, classmethod
dekoratö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 cls
atı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?