- 論壇徽章:
- 1
|
沒錯,又是我來問問題啦,問題如下滴:
我學(xué)寫的一個三層的裝飾函數(shù)如下:
def Deco(arg):
def _Deco(func):
def __Deco():
print("被裝飾{0}函數(shù)前")
print("顯示被裝飾的函數(shù)名{0},以及顯示外層包裝被輸入的參數(shù){1}".format(func.__name__ , arg))
func()
print("被裝飾函數(shù)后")
return __Deco
return _Deco
@Deco("test")
def my_func1():
print("這個是函數(shù):" , my_func1.__name__)
@Deco("mymodule")
def my_func2():
print("這個是函數(shù):" , my_func2.__name__)
my_func1()
my_func2()
問題有兩個:
1. return __Deco 是把函數(shù) __Deco 的結(jié)果返回給上一級的函數(shù),還是返回給系統(tǒng)呢?
2. 一個誤操作引發(fā)了我的疑問,我把 __Deco,錯誤的打成 _Deco,小了一個下劃線,就是這個錯誤,我程序就出錯了,
提示沒有位置參量def _Deco(func):的func。
所以我估計,函數(shù)的return是把本函數(shù)的結(jié)果返回給上一級的函數(shù)的,我這么想對嗎? |
|