Super() işlevini çağırmadan önce bazı işlemleri yapmak istediğiniz durumlar var mı?Pitonda, süper() her zaman bir yöntemde ilk olarak adlandırılır. Daha sonra aranması gereken durumlar var mı?
Bu, zor bir örnektir. Daha iyi örnekler var mı? Bu pythonic olarak kabul edilir mi?
class Base(object):
def __init__(self, name):
print "Base %s created" % name
self._name = name
class UpperBase(A):
""" Similar to base but the name is in uppercase. """
def __init__(self, name):
name = name.upper()
super(UpperBase, self).__init__(name)
Örneğiniz, * üst sınıf için üst sınıftan önce ek hesaplamalar yaptığınız durum türü *. "Thread" alt sınıflarını tanımlarken sık sık yaptığımı biliyorum - iş parçacığına genellikle yapıcı argümanlarına dayanan anlamlı bir ad vermek için bazı mantık var. – ncoghlan
"super() .." yöntemini çağırmadan önce durum durumunu * değiştirmekten kaçınmalısınız. Öyleyse argümanlarda (dönüştürme, doğrulama, vb.) Bazı hesaplamalar yapmak tamamdır, ancak örneğin durumunu değiştirmemelisiniz. – frans
@frans Neden? (Çok fazla kod gördüm.) – TomOnTime