將類作為引數傳入函式來修改 (新增、覆蓋) 類函式。
若將乙個類作為引數傳入乙個函式,並在該函式中為該類新增乙個函式,並且該函式與該類下的某個函式同名,則新新增的函式將覆蓋原類中同名函式。
# 將類 couter1 作為引數傳入 middlefunc() 函式
midd.py
from test.cinner import load_innerfunc
defmiddlefunc
(obj)
: load_innerfunc(obj)
cinner.py
def
load_innerfunc
(obj)
: obj.testone = testone # 覆蓋 couter1 類中的 testone() 函式
obj.testha = testha # 為 couter1 新增 testha() 函式
deftestone()
:print
('innerfunc testone...'
)def
testha()
:print
('innerfunc testha...'
)
test.py
from test.couter import couter1
if __name__ ==
'__main__'
: c = couter1(
)# c.testone() # 呼叫原類中被覆蓋方法,報錯,已被覆蓋
couter1.testone(
)# 呼叫被覆蓋方法
couter1.testha(
)# 呼叫新增方法
# couter1.nice() # 報錯,不能直接通過類名呼叫
c.nice(
)
列印結果:
couter1init…--------------11
innerfunc testone…
--------------22
innerfunc testha…
--------------33
couter1 nice…
將引用作為函式引數
1 void swapr int a,int b 這裡的temp是已經定義的變數,也就是我們說的引用,在上面的函式中,首先定義了乙個函式,上面先定義,再按值傳遞,但是c 中是不可以的。只有指標傳遞,引用傳遞。指標傳遞 viod swapv int p,int q 引用傳遞 void swapr in...
將引用作為函式引數
1 void swapr int a,int b 這裡的temp是已經定義的變數,也就是我們說的引用,在上面的函式中,首先定義了乙個函式,上面先定義,再按值傳遞,但是c 中是不可以的。只有指標傳遞,引用傳遞。指標傳遞 viod swapv int p,int q 引用傳遞 void swapr in...
類物件作為函式引數
網上看見一段 是關於類物件作為函式的引數,其中有幾點知識,貼出來大家一起學習。直接來看 include include using namespace std class people people people char namestr,int i people people char peopl...