super第乙個引數是指定呼叫誰的直接父類,
第二個引數指定當呼叫時,傳遞什麼作為方法的第乙個引數,一般如果是例項方法的話第乙個引數是self,類方法的話第乙個引數為cls
如果子類直接呼叫 父類的方法,可以直接預設使用super()即可,如果需要呼叫爺爺或者再以上的父類,則需要傳參進去。
使用爺爺類的例項方法:
class grandfather:
def gfprint(self):
print('grandfather')
class father(grandfather):
def fprint(self):
super(father,self).gfprint() #等價於super().print()
class son(father):
def sprint(self):
super(father,self).gfprint()
son().sprint()
使用爺爺類的類方法:
class grandfather:
@classmethod
def cls_print(cls):
print('grandfather.cls_print')
class father(grandfather):
@classmethod
def cls_father(cls):
super(father,cls).cls_print() #等價於super().cls_print()
class son(father):
@classmethod
def cls_son(cls):
super(father,cls).cls_print()
son().cls_son()
注意事項:
當父類含有帶引數的__init__方法的時候,子類在繼承的時候一定要乙個初始化方法,並且在初始化方法中呼叫父類的初始化方法。
class father:
def __init__(self,a,b):
self.a = a
self.b = b
def sum(self):
return self.a+self.b
class son(father):
def __init__(self,a,b,c):
self.c = c
super().__init__(a,b) #等價於 super(son,self).__init__(a,b)
son = son(1,2,3)
son.sum()
linq list select用法注意事項
下面是我自己做的乙個例子 listordlist new list var b ordlist.where o o.trackingno aa tolist var aa ordlist.select o o.trackingno aa tolist var c ordlist.select o o...
JNative用法注意事項
公司要做個跟裝置打交道的web系統,需要j a呼叫dll。搞j a的同事說jnative看起來挺好使的,找俺幫忙調通。用的是1.3.1版本 環境設定。jnative的除錯資訊需要開啟才能更清楚些,要不總是說沒載入庫,跟沒說一樣。system.setproperty jnative.debug tru...
AJPFX關於this用法和注意事項
this 代表物件。就是所在函式所屬物件的引用。哪個物件呼叫了this所在的函式,this就代表哪個物件,就是哪個物件的引用。開發時在定義功能時,如果該功能內部使用到了呼叫該功能的物件,這時就用this來表示這個物件。this 還可以用於建構函式間的呼叫。呼叫格式 this 實際引數 this物件後...