您好,登錄后才能下訂單哦!
使用python怎么實現一個帶參數的裝飾器?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。
1、裝飾器說明
裝飾器看上去并沒有任何參數(使用 @ 時被裝飾的方法作為隱式參數傳遞給裝飾器)。但是,有時候讓裝飾器自帶一些參數,可以提供更靈活的應用。
2、實例
我們改寫 requires_ints,使其還可以限制被裝飾函數的參數的數量:
from functools import wraps def requires_ints(count=0): def decorator(func): @wraps(func) def wrapper(*args, **kwargs): values = [i for i in kwargs.values()] args_list = list(args) + [i for i in kwargs.values()] if count == 0: # Not limit pass elif len(args_list) > count: raise Exception(f'The number of arguments cannot more than {count}') for arg in args_list: if not isinstance(arg, int): raise TypeError('Only accept integers.') return func(*args, **kwargs) return wrapper return decorator @requires_ints(5) def add(*args): '''Return the sum of all arguments''' return sum(args)
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。