最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 裝飾器的使用示例

 更新時間:2020年10月10日 11:34:55   作者:南方的墻  
這篇文章主要介紹了python 裝飾器的使用示例,幫助大家更好的理解和使用python裝飾器,感興趣的朋友可以了解下

無參修飾 ,無參數(shù)時不需要調(diào)用

def log1(func):
  func()
@log1
def test():
  print('test:')

有參修飾

def log2(func):
  def inner(*args, **kwargs):
    func(*args, **kwargs)
  return inner
@log2
def test(num):
  print('testlog2:',num,test.__name__)
test(20) #相當于log(test(20))

@wraps可以保證裝飾器修飾的函數(shù)的name的值保持不變

不帶參數(shù)的裝飾器

def log3(func):
  @wraps(func)
  def inner(*args, **kwargs,):
    func(*args, **kwargs)
  return inner
@log3
def test(num):
  print('testlog3:',num,test.__name__)
test(30) #相當于log(test(30))

帶參數(shù)的裝飾器

def log4(level):
  def log(func):
    @wraps(func)
    def inner(*args, **kwargs,):
      if level == "warn":
        print("%s is running" % func.__name__)
      func(*args, **kwargs)
    return inner
  return log
@log4(level="warn")
def test(num):
  print('testlog4:', num, test.__name__)
test(40)

實現(xiàn)帶參數(shù)和不帶參數(shù)的裝飾器自適應

def log(arg):
  if callable(arg): # 判斷參入的參數(shù)是否是函數(shù),不帶參數(shù)的裝飾器調(diào)用這個分支
    def log3(func):
      @wraps(func)
      def inner(*args, **kwargs, ):
        func(*args, **kwargs)
      return inner
    return log3
  else:
    def log4(func):
      @wraps(func)
      def inner(*args, **kwargs,):
        if arg == "warn":
          print("%s is running" % func.__name__)
        func(*args, **kwargs)
      return inner
    return log4
@log(arg=None)
def test(num):
  print('testlog:', num, test.__name__)
test(0)

返回入?yún)⒊鰠?/strong>

def log5(func):
  def inner(*args, **kwargs):
    print('入?yún)ⅲ?,func.__name__, args, kwargs)
    res =func(*args, **kwargs)
    print('出參:',func.__name__, res)
    return res
  return inner
@log5
def test(num):
  print('testlog5:', num, test.__name__)
  return num
print(test(50))

類裝飾器

class Loging:
  def __init__(self,level):
    self.level = level

  def __call__(self,func):
    @wraps(func)
    def inner(*args, **kwargs):
      if self.level == "warn":
        self.notify(func)
      func(*args, **kwargs)
    return inner

  def notify(self,func):
    print ("%s is running" % func.__name__)


@Loging(level="warn")
def test(num):
  print('testLoging:', num, test.__name__)
test(0)

以上就是python 裝飾器的使用示例的詳細內(nèi)容,更多關于python 裝飾器的資料請關注腳本之家其它相關文章!

相關文章

  • 詳解Python中的編碼問題(encoding與decode、str與bytes)

    詳解Python中的編碼問題(encoding與decode、str與bytes)

    這篇文章主要介紹了Python中的編碼問題(encoding與decode、str與bytes),幫助大家更好的理解和使用python進行開發(fā),感興趣的朋友可以了解下
    2020-09-09
  • Python3中延時變量和 free_list鏈表的區(qū)別解析

    Python3中延時變量和 free_list鏈表的區(qū)別解析

    這篇文章主要介紹了Python3中延時變量和 free_list鏈表的區(qū)別,在Python3中,"延時變量" 和 "free_list鏈表" 是兩個不同的概念,他們之間沒有直接聯(lián)系,本文給實例相結合給大家講解的非常詳細,需要的朋友可以參考下
    2023-04-04
  • python讀取與寫入tif圖片的完整信息(過程詳解)

    python讀取與寫入tif圖片的完整信息(過程詳解)

    這篇文章主要介紹了python讀取與寫入tif圖片的完整信息,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Python圖像處理Pillow庫的安裝使用

    Python圖像處理Pillow庫的安裝使用

    本文詳細介紹了Python第三方庫Pillow的使用,通過導入Pillow庫、打開和保存圖像、基本圖像操作以及圖像處理高級功能的代碼示例,我們了解了Pillow庫的強大功能和靈活性,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)

    Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù)

    這篇文章主要介紹了Python3使用xlrd、xlwt處理Excel方法數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

    詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強

    這篇文章主要介紹了詳解利用python識別圖片中的條碼(pyzbar)及條碼圖片矯正和增強,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Selenium爬取b站主播頭像并以昵稱命名保存到本地

    Selenium爬取b站主播頭像并以昵稱命名保存到本地

    這篇文章主要介紹了使用Selenium自動化爬取b站主播頭像并以昵稱命名保存到本地的方法,代碼簡單完整,對于大家練習Selenium自動化有一定的幫助,需要的朋友可以參考下
    2021-04-04
  • python 判斷三個數(shù)字中的最大值實例代碼

    python 判斷三個數(shù)字中的最大值實例代碼

    這篇文章主要介紹了python 判斷三個數(shù)字中的最大值,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • Python暴力破解Mysql數(shù)據(jù)的示例

    Python暴力破解Mysql數(shù)據(jù)的示例

    這篇文章主要介紹了Python暴力破解Mysql數(shù)據(jù)的示例,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下
    2020-11-11
  • 詳解在Python和IPython中使用Docker

    詳解在Python和IPython中使用Docker

    這篇文章主要介紹了詳解在Python和IPython中使用Docker,Docker是一個吸引人的新系統(tǒng),可以用來建立有趣的新技術應用,特別是云服務相關的,需要的朋友可以參考下
    2015-04-04

最新評論

潜江市| 特克斯县| 枣阳市| 东乡| 吉木乃县| 布尔津县| 正安县| 厦门市| 包头市| 年辖:市辖区| 威海市| 铁力市| 大厂| 贵南县| 阿荣旗| 新昌县| 新平| 哈尔滨市| 南通市| 濉溪县| 闸北区| 龙海市| 兴业县| 江油市| 江津市| 大姚县| 淮阳县| 肥西县| 吉安县| 镇平县| 仙游县| 百色市| 阿合奇县| 印江| 尉氏县| 万全县| 任丘市| 肇庆市| 五寨县| 建昌县| 托克逊县|