python装饰器的应用。
1、装饰器的作用
装饰器顾名思义,就是起一个装饰作用,悄无声息的给一个函数添加一些功能,又不改变它自身的定义代码。(即“开放封闭原则”)
2、代码 .py
"""要求登录成功一次,后续的函数都无需再输入用户名和密码"""
import time
account_flag = False
def login(func):
account_dict = {}
def inner(*args, **kwargs):
global account_flag
if not account_flag:
""" 将用户信息装载成字典格式"""
with open(r'/Users/dyh/PycharmProjects/pythonProject1/文件名/装饰器/登录信息.txt', mode='rt', encoding='utf-8') as f:
account_data = f.read().split('\n')
for item in account_data:
user, password = item.split(':')
account_dict.setdefault(user, password) # 用户信息装填成字典
username = input("username>>>>>")
pwd = input("password>>>>>>")
if account_dict.__contains__(username) and account_dict[username] == pwd:
account_flag = True
print("登录中")
time.sleep(1)
res = func(*args, **kwargs)
print("登录成功")
return res
else:
print("账号或者密码输入错误")
else:
print("已经通过验证")
res = func(*args, **kwargs)
return res
return inner
@login
def ground():
print("主界面已加载>>>>>>>>>>")
@login
def music():
print("music专区>>>>>>>>>>")
@login
def sing(name):
print(f'{name}即将播放>>>>>>>>')
ground()
music()
sing('blue')
3、运行结果
username>>>>>dyhdyh
password>>>>>>dyh011005
登录中
主界面已加载>>>>>>>>>>
登录成功
已经通过验证
music专区>>>>>>>>>>
已经通过验证
blue即将播放>>>>>>>>
4、总结
保留自己的代码风格,尽量熟练代码,学习这次代码中将信息装载成字典的方法。
本文来自博客园,作者:Medjay,转载请注明原文链接:https://www.cnblogs.com/Medjay/p/15790794.html

浙公网安备 33010602011771号