'''裝飾器
概念:是乙個閉包,把乙個函式當做引數返回乙個替代版的函式,本質上就是乙個返回函式的函式
'''#簡單的裝飾器
def func1():
print("welcome to beijing")
def outer(func):
def inner():
print("******************")
func()
return inner
#f是函式func1的加強版本
f = outer(func1)
f()"""
#複雜一點的
def outer(func):
def inner(age):
if age<0:
age = 0
func(age)
return inner
#使用@符號將裝飾器應用到函式
#@python2.4支援使用@符號
@outer
def say(age):
print("tom is %d years old"%(age))
say(-10) #tom is 0years old
"""#通用裝飾器
def outer(func):
def inner(*args,**kwargs):
#新增修改的功能
print("&&&&&&&&&&&&&&&&&&")
func(*args,**kwargs)
return inner
@outer
def say(name,age):
print("my name is %s,i am %d years old"%(name,age))
say("tom",99) #my name is tom,i am 99 years old
Python 學習筆記 裝飾器
裝飾器也是乙個函式 巢狀 用來裝飾某個函式,來看下面的 import time deftime count func def start time.time func end time.time print this funnction costs end start deftellhi print...
Python裝飾器 學習筆記
python中一切皆物件,函式也可以當做引數傳遞 裝飾器接受函式當做引數,新增功能後返回乙個新函式的函式 python中裝飾器使用 import time deflog time func def log args,kwargs begin time.time res func args,kwarg...
python學習筆記 裝飾器
裝飾器 概念 是乙個閉包,把乙個函式當作引數返回乙個替代版的函式,本質上是乙個返回函式的函式 def outer f1 呼叫函式 def inner 建立裝飾後的函式值 pass return inner 返回乙個函式值 簡單的裝飾器 例子 def f 建立乙個函式f print 你好!def ou...