装饰器用法、原理
参考:segmentfault.com/a/119000001… 核心思想:万物都是对象,函数也是个对象,所以可以把函数作为输入 装饰器本质是语法糖
将
def func1():{}
def func2():{}
res = func1(func2)
简化成
def fun1():{}
@func1
def func2()
{
}
一个例子:
import time
def timeit(func):
def result():
start_time = time.time()
func()
end_time = time.time()
print('函数运行时间为:%.2fs' % (end_time - start_time))
return result
@timeit
def func_0():
time.sleep(2)
# 省略98个
@timeit
def func_99():
time.sleep(2)
# 接下来直接调用这100个函数即可
func_0()
# ...
Python类如何动态修改、读取属性
setattr, getattr
class Student:
math = 50
pass
s = Student()
math = getattr(s,'math')
print(math)
setattr(s,'chinese',100)
print(s.chinese)
其他想到再补充