13 Python裝飾器(一)

2021-09-19 17:15:28 字數 1184 閱讀 6137

一、在python中函式也可以作為另乙個函式的引數,不限制是字串、陣列、集合、數字等。

下面看乙個例子:

# coding=utf-8

def sum(x, y):

return x + y

def sub(x, y):

return x - y

def test(fun, x, y):

return fun(x, y)

print sum(2, 3)

print test(sum, 2, 3)

print test(sub, 2, 3)

執行結果:

這裡我們可以看到在執行print(test(sum, 2, 3))時呼叫了sum函式。在把sum函式作為引數時sum函式的引數是不需要寫進來的。

這裡做乙個測試:

print test(sum(2, 3), 2, 3)
執行結果,出現了報錯,int物件不可呼叫:

二、由於在使用過程中不知道需要傳入乙個引數還是多個,這裡時候就可以換種寫法,傳入可變引數

# coding=utf-8

def test_tesult(fun):

def inner(*args, **kwargs):

try:

fun(*args, **kwargs)

print (u"程式未丟擲異常pass")

except:

print (u"程式丟擲異常fail")

return fun(*args, **kwargs)

return inner

@test_tesult

def my_test(a, b):

return a+b

print my_test(3, 5)

print my_test(3, 5, 1)

執行結果:

13 Python 裝飾器 偏函式

裝飾器 原函式 def now print 2019 01 10 print now.name 增加原函式的功能 def log func print call s func.name return func args,kw log def new print 2019 01 10 呼叫new函式時...

13 Python中的迭代器

迭代器是乙個資料流物件或容器,當使用其中的資料時,每次從乙個資料流中取乙個資料,直到資料被取完,而且資料不會被重複使用 實現自定義迭代器需要實現如下的方法 自定義異常示例 依次遍歷x的n次方,知道大於100時結束迭代 class myiterator def init self,x 2,max 10...

1 3 Python語法初探

input輸入 螢幕輸入 input 的小括號中放入的是,提示資訊,用來在獲取資料之前給使用者的乙個簡單提示 input 在從鍵盤獲取了資料以後,會存放到等號右邊的變數中 input 會把使用者輸入的任何值都作為字串來對待 str input 請輸入 請輸入 這裡是輸入完 直接的輸出 str inp...