Redis面試常問的知識點總彙
阿新 • • 發佈:2020-12-15
裝飾器的作用就是為已經存在的物件新增額外的功能
- 理解函式
- 在函式中定義函式
- 函式作為函式的返回值
- 函式作為引數傳遞給另一個函式
# 裝飾器 def decorator(func): def inner(): # 在函式中定義函式 print('inner函式被呼叫了') return func() return inner # 函式作為函式的返回值 #被裝飾函式 def foo(): print('foo函式被呼叫了') foo = decorator(foo) # 函式作為引數傳遞給另一個函式 foo() # output: # inner函式被呼叫了 # foo函式被呼叫了
# 裝飾器
def decorator(func):
def inner(): # 在函式中定義函式
print('inner函式被呼叫了')
return func()
return inner # 函式作為函式的返回值
# 被裝飾函式
@decorator
def foo():
print('foo函式被呼叫了')
foo()
# output:
# inner函式被呼叫了
# foo函式被呼叫了
上述兩段程式功能完全一樣,@decorator
的作用相當於foo = decorator(foo)
,將foo函式當做引數傳遞給decorator函式,將decorator函式的返回值inner函式賦值給foo函式,此時再呼叫foo函式相當於執行inner函式
裝飾器的作用即是在不改變foo函式的情況下,可以在inner函式中新增程式來增加其功能