首先參考了幾篇網路上的文章或者教程,看完之後也沒有弄明白這個功能是什麼意思。於是查了一下python的文件,相關的描述如下:
@f1(arg)
@f2def func(): pass
is roughly equivalent to
def func(): pass
func = f1(arg)(f2(func))
其實,太多的東西也沒必要去理解了。直接按照這個例子來理解一下就好了。這樣,假如有以下**:
def func1(par):
print("func1")
print(par)
def func2(par):
print("func2")
print(par)
@func1
@func2
def func3():
print("func3")
return 9
相應的修飾部分等效結果應該如下:
func3 =func1(func2(func3))
先執行這段**看一下結果:
e:\01_workspace\02_programme_language\03_python\oop\2017\08\10>pythondemo.py
func2
func1
none
然後修改**如下:
def func1(par):
print("func1")
print(par)
def func2(par):
print("func2")
print(par)
#@func1
#@func2
def func3():
print("func3")
return 9
func3 =func1(func2(func3))
程式執行結果:
e:\01_workspace\02_programme_language\03_python\oop\2017\08\10>pythondemo.py
func2
func1
none
traceback (mostrecent call last):
file "demo.py", line 20, in
func3()
typeerror:'nonetype' object is not callable
由此看來,是不是可以理解為被修飾的函式最終的函式體都等同於pass,而相應的函式還是乙個不可被呼叫的函式。這樣看來的話,這樣的功能作用也不是很大。
通過查詢資料,這樣的功能還能夠用於修飾類,具體的用法以後再做一下小結。
Python中符號的用法
1.如果字串內部既包含 又包含 怎麼辦?可以用轉義字元 來標識,比如 i m ok 表示的字串內容是 i m ok 轉義字元 可以轉義很多字元,比如 n表示換行,t表示製表符,字元 本身也要轉義,所以 表示的字元就是 可以在python的互動式命令列用print 列印字串看看 print i m o...
python中符號 的意義和用法
在python中為反轉的意思,目前我知道的有兩種用法.x 就是 x 1 x 2print x 3 直接看案例 我們希望從 df 中刪去 list1 h i j k l m n 中的列,但是注意到df 中只有 h i j 是在 list 裡面的,我們需要把 k l m n 的列排除掉...
C 中 符號的用法
1 用在表示路徑的字串前面 string filepath error f t1 t2 t3.txt 此時字串中 會被當做轉義字元處理,將不能正確表示路徑 string filepath success f t1 t2 t3.txt 對 進行轉義,此時可以正確表示為路徑 string filepat...