增加Python高级中的3.6和3.7

master
backbp 2019-03-05 17:19:59 +08:00
parent 0ffca44440
commit 13e084abb5
1 changed files with 37 additions and 0 deletions

View File

@ -545,6 +545,43 @@ New 是真正创建实例对象的方法所以重写基类的new 方法,以
``` ```
# Python高级 # 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设计模式
## 4.1 对设计模式的理解,简述你了解的设计模式? ## 4.1 对设计模式的理解,简述你了解的设计模式?
设计模式是经过总结,优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码,反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。 设计模式是经过总结,优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码,反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。