Skip to content

Commit b64fe99

Browse files
update README.md
1 parent e83dfa6 commit b64fe99

File tree

2 files changed

+150
-5
lines changed

2 files changed

+150
-5
lines changed

README.md

Lines changed: 124 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,130 @@
22

33
学习的进度如下所示:
44

5-
+ [ ] x
6-
- [ ] c
7-
- [ ] d
8-
9-
5+
+ [ ] Python教程
6+
+ [x] Python简介
7+
+ [x] 安装Python
8+
+ [x] Python解释器
9+
+ [x] 第一个Python程序
10+
+ [x] 使用文本编辑器
11+
+ [x] Python代码运行助手
12+
+ [x] 输入和输出
13+
+ [x] Python基础
14+
+ [x] 数据类型和变量
15+
+ [x] 字符串和编码
16+
+ [x] 使用list和tuple
17+
+ [x] 条件判断
18+
+ [x] 循环
19+
+ [x] 使用dict和set
20+
+ [x] 函数
21+
+ [x] 调用函数
22+
+ [x] 定义函数
23+
+ [x] 函数的参数
24+
+ [x] 递归函数
25+
+ [x] 高级特性
26+
+ [x] 切片
27+
+ [x] 迭代
28+
+ [x] 列表生成式
29+
+ [x] 生成器
30+
+ [x] 迭代器
31+
+ [x] 函数式编程
32+
+ [x] 高阶函数
33+
+ [x] map/reduce
34+
+ [x] filter
35+
+ [x] sorted
36+
+ [x] 返回函数
37+
+ [x] 匿名函数
38+
+ [x] 装饰器
39+
+ [ ] 偏函数
40+
+ [ ] 模块
41+
+ [ ] 使用模块
42+
+ [ ] 安装第三方模块
43+
+ [ ] 面向对象编程
44+
+ [ ] 类和实例
45+
+ [ ] 访问限制
46+
+ [ ] 继承和多态
47+
+ [ ] 获取对象信息
48+
+ [ ] 实例属性和类属性
49+
+ [ ] 面向对象高级编程
50+
+ [ ] 使用__slots__
51+
+ [ ] 使用@property
52+
+ [ ] 多重继承
53+
+ [ ] 定制类
54+
+ [ ] 使用枚举类
55+
+ [ ] 使用元类
56+
+ [ ] 错误、调试和测试
57+
+ [ ] 错误处理
58+
+ [ ] 调试
59+
+ [ ] 单元测试
60+
+ [ ] 文档测试
61+
+ [ ] IO编程
62+
+ [ ] 文件读写
63+
+ [ ] StringIO和BytesIO
64+
+ [ ] 操作文件和目录
65+
+ [ ] 序列化
66+
+ [ ] 进程和线程
67+
+ [ ] 多进程
68+
+ [ ] 多线程
69+
+ [ ] ThreadLocal
70+
+ [ ] 进程 vs. 线程
71+
+ [ ] 分布式进程
72+
+ [ ] 正则表达式
73+
+ [ ] 常用内建模块
74+
+ [ ] datetime
75+
+ [ ] collections
76+
+ [ ] base64
77+
+ [ ] struct
78+
+ [ ] hashlib
79+
+ [ ] itertools
80+
+ [ ] contextlib
81+
+ [ ] XML
82+
+ [ ] HTMLParser
83+
+ [ ] urllib
84+
+ [ ] 常用第三方模块
85+
+ [ ] PIL
86+
+ [ ] virtualenv
87+
+ [ ] 图形界面
88+
+ [ ] 网络编程
89+
+ [ ] TCP/IP简介
90+
+ [ ] TCP编程
91+
+ [ ] UDP编程
92+
+ [ ] 电子邮件
93+
+ [ ] SMTP发送邮件
94+
+ [ ] POP3收取邮件
95+
+ [ ] 访问数据库
96+
+ [ ] 使用SQLite
97+
+ [ ] 使用MySQL
98+
+ [ ] 使用SQLAlchemy
99+
+ [ ] Web开发
100+
+ [ ] HTTP协议简介
101+
+ [ ] HTML简介
102+
+ [ ] WSGI接口
103+
+ [ ] 使用Web框架
104+
+ [ ] 使用模板
105+
+ [ ] 异步IO
106+
+ [ ] 协程
107+
+ [ ] asyncio
108+
+ [ ] async/await
109+
+ [ ] aiohttp
110+
+ [ ] 实战
111+
+ [ ] Day 1 - 搭建开发环境
112+
+ [ ] Day 2 - 编写Web App骨架
113+
+ [ ] Day 3 - 编写ORM
114+
+ [ ] Day 4 - 编写Model
115+
+ [ ] Day 5 - 编写Web框架
116+
+ [ ] Day 6 - 编写配置文件
117+
+ [ ] Day 7 - 编写MVC
118+
+ [ ] Day 8 - 构建前端
119+
+ [ ] Day 9 - 编写API
120+
+ [ ] Day 10 - 用户注册和登录
121+
+ [ ] Day 11 - 编写日志创建页
122+
+ [ ] Day 12 - 编写日志列表页
123+
+ [ ] Day 13 - 提升开发效率
124+
+ [ ] Day 14 - 完成Web App
125+
+ [ ] Day 15 - 部署Web App
126+
+ [ ] Day 16 - 编写移动App
127+
+ [ ] FAQ
128+
+ [ ] 期末总结
10129

11130

12131
下面是学习的过程中遇到的一些问题,以及解决方案。

day-11/decorator.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,33 @@ def sum4():
8282
sum4()
8383
print(sum4.__name__)
8484

85+
print('------ divider ------')
8586

87+
from functools import wraps
8688

89+
def logX(arg):
90+
if callable(arg):
91+
func = arg
92+
def wrapper(*args, **kw):
93+
print('before')
94+
func(*args, **kw)
95+
return wrapper
96+
else:
97+
def decorator(func):
98+
def wrapper(*args, **kw):
99+
print(arg)
100+
print('before')
101+
func(*args, **kw)
102+
return wrapper
103+
return decorator
104+
105+
@logX
106+
def sum7():
107+
pass
87108

109+
@logX(123)
110+
def sum8():
111+
pass
88112

113+
sum7()
114+
sum8()

0 commit comments

Comments
 (0)