码迷,mamicode.com
首页 > 其他好文 > 详细

装饰器示例

时间:2018-03-28 20:32:30      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:use   装饰器   --   get   代码   oca   turn   strip()   python   

‘‘‘
装饰器:
不修改源代码,不修改其调用方法
‘‘‘

import getpass
import time

usr, pwd = "xiaobai", "111111"

#装饰器
def auth(auth_type):
	def outter_wrapper(func):
		def wrapper(*args, **kwargs):
			if auth_type == "local":
				username = input("usrname:").strip()
				password = getpass.getpass("password:").strip()
				if usr == username and pwd == password:
					print("auth has passed!")
					res = func(*args, **kwargs)
					print("----after authentication")
					return res
				else:
					exit("Invalid username or password!")
			elif auth_type == "ladap":
				print("不会。。。。。")
		return wrapper
	return outter_wrapper

#源代码
def index():
	print("Welcome to the index page!")

@auth(auth_type="local")
def home():
	print("Welcome to the home page!")
	return "from home."

@auth(auth_type="ladap")     # bbs = auth(auth_type="local")
def bbs():
	print("Welcome to the bbs page!")


# index()
print(home())
# bbs()

  

装饰器示例

标签:use   装饰器   --   get   代码   oca   turn   strip()   python   

原文地址:https://www.cnblogs.com/ericbai/p/8665436.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!