defadd(x, y, func):return func(x)* func(y)
result = add(4,8,abs)print(result)
修饰器
原则:
不能修改被装修函数的源代码;
不能修改被装饰函数的调用方式;
# --*--coding:utf-8--*--#! /usr/bin/python3
user, passwd ='k','12345'defauth(func):defwrapper(*args,**kwargs):
username =input('username:').strip()
password =input('passwd:').strip()if user == username and passwd == password:print('passed')
func(*args,**kwargs)else:
exit('Invalid username or password.')return wrapper
defindex():print('welcomt to index page')
@auth
defhome():print('welcome to home page')
@auth
defbbs():print('welcomt to bbs page')
index()
home()
bbs()
# json序列化与反序列化import json
info ={'name':'k','age':22'sex':'男'}# 序列化
f =open('test.txt','w')
f.write(json.dumps(info))# 反序列化
f =open('test.txt','r')
data = json.loads(f.read())print(data['sex'])
f.close()
# pickle序列化与反序列化import pickle
info ={'name':'k','age':22'sex':'男'}# 序列化
f =open('test.txt','wb')
f.write(pickle.dumps(info))#与下一句作用相同
pickle.dump(info, f)# 反序列化
f =open('test.txt','rb')
data = pickle.loads(f.read())print(data['sex'])
f.close()