關於python的裝飾器簡單實用

2021-09-22 19:16:36 字數 1245 閱讀 1600

python呼叫函式可以提供 key=value 代表這個引數的值,我們可以不用根據函式定義順序來呼叫函式。。。。

(*a,**b) 可以作為裝飾器提供不定引數。。。使裝飾器和被裝飾函式 耦合度大幅度降低

函式 def func():

return 1

///返回 函式的名字

func.__name__

//通過裝飾器實現類的靜態方法

class class:

@staticmethod

def ok():

print "ok"

class.ok()

/不定引數裝飾器

#encoding=utf-8

def deco(func):

def _infunc(*args,**kvargs):

print("before myfunc() called.")

func(*args,**kvargs)

print("after myfunc() called.")

return _infunc

@deco

def myfunc(a,b):

print "a+b=",a+b

@deco

def myfunc1(a,b,c):

print "a+b+c=",a+b+c

myfunc(1,2)

myfunc1(b=1,a=100,c=8)

裝飾器帶引數的 不定引數裝飾器

#encoding=utf-8

def decco(arg):

def _deco(func):

def _infunc(*args,**kvargs):

print("before myfunc() called. args:%s" % arg)

func(*args,**kvargs)

print("after myfunc() called.args:%s" % arg)

return _infunc

return _deco

@decco("aaa")

def myfunc(a,b):

print "a+b=",a+b

@decco("bbb")

def myfunc1(a,b,c):

print "a+b+c=",a+b+c

myfunc(1,2)

myfunc1(b=1,a=100,c=8)

python簡單裝飾器 python裝飾器簡單使用

理解裝飾前先理解python閉包的概念 下面是對裝飾器的簡單舉例 實質 是乙個函式 引數 是你要裝飾的函式名 並非函式呼叫 返回 是裝飾完的函式名 inner 作用 為已經存在的物件新增額外的功能 特點 不需要對物件做任何的 上的變動 被裝飾的函式無引數 def decorate func 裝飾器列...

python 簡單的裝飾器

今天我們講一講python中的裝飾器。可能初次接觸裝飾器的同學會覺得它很難,其實也就那麼一回事兒,今天就讓我們會會它!首先它的本質是函式,它的功能是為其他函式新增附加功能。ps 它有兩個原則 1.不能修改被修飾的函式的 2.不能更改被修飾函式的呼叫函式。我所認為的裝飾器其實就是 裝飾器 高階函式 函...

簡單易懂的python裝飾器

利用高階函式和閉包,實現不改變已實現的功能和呼叫方式的情況下增加功能 def log func def inner args,kw print call s func.name return func args,kw return inner log def now print 2015 3 25 ...