Python知识点

113 阅读1分钟

装饰器用法、原理

参考: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)

其他想到再补充