python基础篇(四)
一、装饰器
装饰器:在不改变原程序代码和调用方式的情况下,使其新增加功能的函数
先来一段代码
user,passwd = 'cuix','123456'
def add_login(func):
def add():
username = input("Username >>:").strip()
password = input("Passwrod >>:").strip()
if user == username and passwd == password:
print('登陆成功!')
func()
else:
print('用户名或密码错误!')
return add
@add_login
def home():
print('welcome Home!')
home()
# 执行结果如下
Username >>:cuix
Passwrod >>:123456
登陆成功!
welcome Home!
# 如果不在home()函数上面加@add_login则只会输出'welcome Home!'
# 而加了@add_login,刚会在home()原先的输出基础上增加了另一函数的功能,
# 这就是装饰器的功能
再来一个个带参数的装饰器
# @Time : 2017/3/23 15:50 # @Author : Cui X user,passwd = 'cuix','123456' def add_login(name): def login(func): def add(*args, **kwargs): if name == 'local': username = input("Username >>:").strip() password = input("Passwrod >>:").strip() if user == username and passwd == password: print('使用local方式登陆成功!') func(*args, **kwargs) else: print('用户名或密码错误!') else: print('不是local') return add return login @add_login('local') def home(): print('welcome Home!') home() # 输出结果 Username >>:cuix Passwrod >>:123456 使用local方式登陆成功! welcome Home!
二、列表生成式&&生成器
列表生成式
# 把列表中的元素都加1
a = [0,1,3,5,7,9,11]
for i,j in enumerate(a):
a[i] += 1
print(a)
[1,2,4,6,8,10,12]
# 生成列表
b = [x for x in range(10)]
print(b)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
生成器
生成器是调用一个生成器函数(generator function)返回的对象,多用于集合对象的迭代
三、迭代器
顶替
四、软件目录结构规范
顶替
浙公网安备 33010602011771号