亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中的裝飾器 Decorators的使用方法

發布時間:2021-10-09 17:42:59 來源:億速云 閱讀:175 作者:柒染 欄目:大數據

本篇文章給大家分享的是有關Python中的裝飾器 Decorators的使用方法,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

python的五大特點是什么

python的五大特點:

1.簡單易學,開發程序時,專注的是解決問題,而不是搞明白語言本身。

2.面向對象,與其他主要的語言如C++和Java相比, Python以一種非常強大又簡單的方式實現面向對象編程。

3.可移植性,Python程序無需修改就可以在各種平臺上運行。

4.解釋性,Python語言寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序。

5.開源,Python是 FLOSS(自由/開放源碼軟件)之一。


def my_logging(func):
   def wrapper():
       print('logging - {} is running'.format(func.__name__))
       func()  # run func()  Equivalent run f1()

   return wrapper


def bold(func):
   def wrapper():
       print("<b>")
       func()
       print("</b>")

   return wrapper


def italic(func):
   def wrapper():
       print("<i>")
       func()
       print("</i>")

   return wrapper


@my_logging
@bold
@italic
def f1():
   print("f1")


f1()

其實上面這段 code 也相當這樣的

def my_logging(func):
   def wrapper():
       print('logging - {} is running'.format(func.__name__))
       func()  # run func()  Equivalent run f1()

   return wrapper


def bold(func):
   def wrapper():
       print("<b>")
       func()
       print("</b>")

   return wrapper


def italic(func):
   def wrapper():
       print("<i>")
       func()
       print("</i>")

   return wrapper


def f1():
   print("f1")


f1 = my_logging(bold(italic(f1)))
f1()

這邊只需要稍微注意一下執行的順序????,剛剛的 f1() 是沒有帶入參數的,今天假如我希望帶入參數呢?

def my_logging(func):
   def wrapper(*args, **kwargs):
       print('logging - {} is running'.format(func.__name__))
       func(*args, **kwargs)

   return wrapper


@my_logging
def f1(*args, **kwargs):
   print("f1")

   for thing in args:
       print('hello {}'.format(thing))

   for name, value in kwargs.items():
       print('{0} = {1}'.format(name, value))


f1('twtrubiks', apple='fruit', cabbage='vegetable')

使用 *args **kwargs 這樣寫的話,不管 f1() 帶入什麼參數都不用擔心????。裝飾器還有更大的彈性,像是今天如果我希望將裝飾器帶入參數。

def my_logging(level):
   def decorator(func):
       def wrapper(*args, **kwargs):
           if level == "1":
               print('level {} logging - {} is running'.format(level, func.__name__))
           elif level == "2":
               print('level {} logging - {} is running'.format(level, func.__name__))

           func(*args, **kwargs)

       return wrapper

   return decorator


@my_logging(level="1")
def f1(*args, **kwargs):
   print("f1")

   for thing in args:
       print('hello {}'.format(thing))

   for name, value in kwargs.items():
       print('{0} = {1}'.format(name, value))


f1('twtrubiks', apple='fruit', cabbage='vegetable')

這邊簡單說明,就是為了要將裝飾器帶入參數,我們必須再包一層。

以上就是Python中的裝飾器 Decorators的使用方法,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盖州市| 阜平县| 铜陵市| 乌兰浩特市| 松溪县| 广宗县| 长兴县| 新宁县| 荔浦县| 石首市| 平南县| 虎林市| 含山县| 武功县| 松阳县| 南丹县| 东丰县| 昆山市| 岫岩| 黄石市| 长丰县| 子长县| 昭觉县| 边坝县| 沙田区| 斗六市| 庆安县| 青阳县| 来宾市| 分宜县| 乐清市| 凉城县| 达尔| 彭州市| 松阳县| 扬州市| 桃园市| 白水县| 勃利县| 志丹县| 同江市|