Python裝飾器主要用法
阿新 • • 發佈:2017-08-13
**kwargs div odi 功能 func erro utf spa 情況
#!/usr/bin/env python3 # -*- coding: utf-8 -*- __author__ = ‘人生入戲‘ user = "admin" passwd = "123456" def auth(auth_type): #print("auth_type:",auth_type) def out_wrapper(func): #print("func",func) def wrapper(*args,**kwargs): #print(args,kwargs) if auth_type == "1": username = input("username:").strip() password = input("password:").strip() if username == user and password == passwd: print("start".center(20,"-")) res = func(*args,**kwargs)#把函數的返回值賦值到res print("end".center(20,"-")) return res#返回函數的返回值 else: print("error!") elif auth_type =="2": print(‘2‘) return wrapper return out_wrapper def index(): print("index ok") @auth(auth_type="1") def home(name):print("home ok",name) return ‘from home‘ @auth(auth_type="2") def bbs(): print("bbs ok") index() print(home("你好"))#打印home函數的返回值 bbs() ‘‘‘ 裝飾器: 定義:本質是函數,就是為了給其他的函數增加其他功能 原則:不能改變被裝飾函數的源碼和調用方式 ‘‘‘ ‘‘‘ 一、函數等於‘變量‘ 二、高階函數: 1.把一個函數名當作實參傳給另一個函數(在不修改被裝飾函數的代碼的情況下增加其他功能) 2.返回值包含函數名(不修改函數的調用方式) 三、嵌套函數 ‘‘‘ ‘‘‘ 嵌套函數+高階函數=裝飾器 ‘‘‘
Python裝飾器主要用法