Skip to content

Commit 46df77b

Browse files
authored
Merge pull request #6 from backbp/master
增加企业面试中4.20的答案
2 parents c7a9c0d + 13e084a commit 46df77b

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -544,6 +544,43 @@ New 是真正创建实例对象的方法,所以重写基类的new 方法,以
544544
```
545545

546546
# Python高级
547+
## 3 函数
548+
## 3.6 手写一个判断时间的装饰器
549+
```
550+
import datetime
551+
552+
553+
class TimeException(Exception):
554+
def __init__(self, exception_info):
555+
super().__init__()
556+
self.info = exception_info
557+
558+
def __str__(self):
559+
return self.info
560+
561+
562+
def timecheck(func):
563+
def wrapper(*args, **kwargs):
564+
if datetime.datetime.now().year == 2019:
565+
func(*args, **kwargs)
566+
else:
567+
raise TimeException("函数已过时")
568+
569+
return wrapper
570+
571+
572+
@timecheck
573+
def test(name):
574+
print("Hello {}, 2019 Happy".format(name))
575+
576+
577+
if __name__ == "__main__":
578+
test("backbp")
579+
```
580+
## 3.7 使用Python内置的filter()方法来过滤?
581+
```
582+
[x for x in filter(lambda x: x % 2 == 0, range(10))]
583+
```
547584
## 4设计模式
548585
## 4.1 对设计模式的理解,简述你了解的设计模式?
549586
设计模式是经过总结,优化的,对我们经常会碰到的一些编程问题的可重用解决方案。一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码,反之,设计模式更为高级,它是一种必须在特定情形下实现的一种方法模板。
@@ -600,6 +637,10 @@ New 是真正创建实例对象的方法,所以重写基类的new 方法,以
600637
```
601638
## 4.11 Python中yield的用法》
602639
yield就是保存当前程序执行状态。你用for循环的时候,每次取一个元素的时候就会计算一次。用yield的函数叫generator,和iterator一样,它的好处是不用一次计算所有元素,而是用一次算一次,可以节省很多空间,generator每次计算需要上一次计算结果,所以用yield,否则一return,上次计算结果就没了
640+
## 4.20 用一行代码生成[1,4,9,16,25,36,49,64,81,100]
641+
```
642+
print([x*x for x in range(1, 11)])
643+
```
603644
## 7系统编程
604645
## 7.1 进程总结
605646
进程:程序运行在操作系统上的一个实例,就称之为进程。进程需要相应的系统资源:内存、时间片、pid。

0 commit comments

Comments
 (0)