摘要:
10 def __init__(self, interval, function, args=None, kwargs=None): # 初始化的时候传参是延迟时间、调用的函数,函数的可变位置参数、函数的可变关键字参数
11 Thread.__init__(self) # 调用Thread类初始化配置实例
12 self.interval = interval # 在使用Thread类初始化配置实例之后再额外的增加interval属性
13 self.function = function # 同理再额外的增加function属性
14 self.args = args if args is not None else [] # 如果args不是空的话就使用args,如果是空就给一个空list
15 self.kwargs = kwargs if kwargs is not None else {} # 同理,kwargs不是空的就是kwargs,如果是空就给一个空字典 阅读全文
摘要:
本段源码可以学习的地方:
1. 考虑到效率问题,可以通过上下文的机制,在属性被访问的时候临时构建;
2. 可以重写一些魔术方法,比如 __new__ 方法,在调用 object.__new__(cls) 前后进行属性的一些小设置;
3. 在本库中使用的重写魔术方法,上下文这两种基础之上,我们可以想到函数装饰器,类装饰器,异常捕获,以及两种上下文的结构;
灵活运用这些手法,可以让我们在代码架构上更上一层,能够更加省时省力。 阅读全文