非固定引數接收傳入的實參,不論是多少都會接收。(*args,**kwargs)
user_status = falsedef login(func): #func是要傳入的函式的記憶體位址
def inner(*args,**kwargs):
user = "alex"
password = "123"
global user_status
if not user_status:
user = input("使用者名稱:")
password = input("密碼:")
if user == "alex"and password == "123":
print("歡迎登陸")
user_status = true
else:
print("您輸入的密碼錯誤,請重新輸入")
if user_status:
func(*args,**kwargs) #執行執行要傳入的函式。
return inner
def home():
print("----主頁----")
def america():
print("----歐美專區----")
@login
def japan():
print("----日本專區----")
@login
def henan(arg):
print("----河南專區----",arg)
henan("movie")
japan()
普通裝飾器(不帶引數)
直接給出示例,普通裝飾器 即裝飾器函式本身不帶引數,或引數為實際被包裹的函式 import time from functools import wraps def timethis func decorator that reports the execution time.wraps func ...
引數,裝飾器
引數 若函式中所實現的需求涉及到一些未知項參與運算 這些未知項需要函式的呼叫者來決定 此時,可以將未知項設定為引數.位置引數 必備引數 傳遞引數的順序與定義的順序有關,必須按照定義的順序來進行傳遞.傳遞引數的個數與引數的個數必須保持一致.關鍵字引數 指函式呼叫的時候,可以通過 鍵 值 的形式來加以指...
Python 裝飾器,帶有引數的裝飾器
demo.py 裝飾器,帶引數的裝飾器 def set level level num def set func func def call func args,kwargs if level num 1 print 許可權級別1,驗證 elif level num 2 print 許可權級別2,驗...