Bir grup başka dersler tarafından miras alınan A sınıfına sahibim. Bunlardan bazıları benzer olan birkaç fonksiyona sahiptir ve bu işlevleri başka bir yerde tanımlamak ve onlara ihtiyaç duyan sınıflar tarafından adlandırılmak hoş olurdu. Ancak bu işlevler süper sınıfta tanımlanan işlevleri çağırır. Python - Kendinizi harici bir işleve iletmek uygun mu?
class A():
def imp_func(*args):
# called by the child class functions
Class B(A):
def common_func(self):
# some stuff
self.imp_func(*args)
Yani bir argüman olarak
self object
almak benim yardımcı fonksiyonları oluşturduk ve ben yardımcı fonksiyonları içinden
imp_func
çağırabilir.
def helper_func(obj, some_args):
# some common stuff
obj.imp_func(*args)
class B(A):
def common_func(self):
# unique stuff
helper_func(self, some_args)
Bu, sorunu çözer.
Bunu yapmalı mıyım? Bu Pythonic mi?
Bu konuda kesinlikle bir sorun yok. 'self' * sadece * referansın örneğidir, özel değildir ve başka işlevlere geçmek tehlikeli değildir. –
Bunu neden yapmanız gerekiyor? 'B',' A''dan imp_func' öğesini devralır, böylece 'B.common_func''da' self.imp_func (* args) 'diye bir sorun olmadan arayabilirsiniz. –
@FlorianBrucker Yalnızca bir işlev değil, üst sınıftan çağrılan bir çift ve birkaçına birden çok sınıfta birden çok işlevde birkaç kez denir. Bu çok şişkin sınıflara ve işlevlere yol açar. Bu işlevleri yazmak için zaman alıcıdır. Yardımcı sınıfları kullanmak zamandan, çabadan tasarruf edecek ve kodu daha temiz ve daha kalıcı hale getirecektir. – elssar