1. 程式人生 > 資料庫 >Redis面試常問的知識點總彙

Redis面試常問的知識點總彙

裝飾器的作用就是為已經存在的物件新增額外的功能

  1. 理解函式
  2. 在函式中定義函式
  3. 函式作為函式的返回值
  4. 函式作為引數傳遞給另一個函式
# 裝飾器
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函式中新增程式來增加其功能