1. 程式人生 > >python中@用法

python中@用法

@修飾符
  ‘@’符號用作函式修飾符是python2.4新增加的功能,修飾符必須出現在函式定義前一行,不允許和函式定義在同一行。也就是說@A def f(): 是非法的。 只可以在模組或類定義層內對函式進行修飾,不允許修修飾一個類。一個修飾符就是一個函式,它將被修飾的函式做為引數,並返回修飾後的同名函式或其它可呼叫的東西。

  本質上講,裝飾符@類似於回撥函式,把其它的函式(暫且稱為目的引數)作為自己的入參,在目的函式執行前,執行一些自己的操作,比如:計數、列印一些提示資訊等,然後返回目的函式。下面列舉一個簡單的例子。

import time

def time(func):
    print(time.ctime())
    return
func() @time # 從這裡可以看出@time 等價於 time(xxx()),但是這種寫法你得考慮python程式碼的執行順序 def xxx(): print('Hello world!')
執行結果:
Wed Jul 26 23:01:21 2017
Hello world!