Bu @staticmethod
ve hakkında değil @classmethod
! Nasıl staticmethod
çalıştığını biliyorum . Bilmek istediğim, @staticmethod
modül düzeyinde bir işleve karşı uygun kullanım durumları .
Bu soruyu araştırdım ve modül düzeyinde işlevlerin statik yöntemlere göre tercih edildiğine dair bazı genel anlaşmalar var çünkü daha pitonik. Statik yöntemlerin, sınıfına bağlı olma avantajı vardır, bu da yalnızca bu sınıf onu kullanıyorsa mantıklı olabilir. Ancak, Python işlevselliği genellikle sınıf değil modül tarafından düzenlenir, bu nedenle genellikle bir modül işlevi yapmak da mantıklıdır.
Statik yöntemler alt sınıflar tarafından geçersiz kılınabilir, bu da ona nasıl baktığınıza bağlı olarak bir avantaj veya dezavantajdır. Her ne kadar, statik yöntemler genellikle "işlevsel olarak saf" olsa da, bu geçersiz kılmak akıllı olmayabilir, ancak bazen uygun olabilir (ancak bu "uygun, ancak ASLA YAPMAYIN" türlerinden sadece deneyim size öğretebilir).
Statik yöntem veya modül düzeyindeki işlevleri kullanmak için genel bir genel kural var mı? Ne gibi somut avantajları veya dezavantajları var (örn. Gelecekteki genişletme, harici genişletme, okunabilirlik)? Mümkünse, bir vaka örneği de verin.