diff --git a/README.md b/README.md index f0800ea..f7cd9d1 100644 --- a/README.md +++ b/README.md @@ -545,6 +545,43 @@ New 是真正创建实例对象的方法,所以重写基类的new 方法,以 ``` # Python高级 +## 3 函数 +## 3.6 手写一个判断时间的装饰器 +``` +import datetime + + +class TimeException(Exception): + def __init__(self, exception_info): + super().__init__() + self.info = exception_info + + def __str__(self): + return self.info + + +def timecheck(func): + def wrapper(*args, **kwargs): + if datetime.datetime.now().year == 2019: + func(*args, **kwargs) + else: + raise TimeException("函数已过时") + + return wrapper + + +@timecheck +def test(name): + print("Hello {}, 2019 Happy".format(name)) + + +if __name__ == "__main__": + test("backbp") +``` +## 3.7 使用Python内置的filter()方法来过滤? +``` + [x for x in filter(lambda x: x % 2 == 0, range(10))] +``` ## 4设计模式 ## 4.1 对设计模式的理解,简述你了解的设计模式? 设计模式是经过总结,优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码,反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。