Contents

源码阅读

参考资料

摘录

如何从海量资源中找到合适自己目前情况的?
需要关注下面几点:
大神的、优秀的、简单的

如何阅读学习?
1、通过文档了解基本的功能和使用案例
2、学习过程中经常反问自己,如果是自己会怎么做?
3、以项目为例子,一般从主程序进入,然后按照模块阅读。不推荐按顺序看或者随机看
4、忽略掉部分细节,一些看不懂的可以记录后跳过,之后再查资料
5、总结,记一些笔记。包括但不限于文字、画图、思维导图等等,然后有时间多多回顾

单文件实现一个 web 框架

记录

class 中的 init() 函数中也可以执行下面定义的方法
通过字符串拼接的方法判断 class 中是否含有该方法

1
2
3
4
5
6
7
8
mname = ('' + 传入的参数值).lower()
# 判断是否有该方法
if not hasattr(self, mname):
    ...
    return
# 获取该方法
method = getattr(self, mname)
method()

sys.stout 和 print
https://www.cnblogs.com/oyster25/p/12348148.html

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
print 函数默认 file = sys.stdout,表示会将内容打印输出到标准输出流,即 sys.stdout

也可以自定义输出流:

1
2
3
with open('test.log', 'a') as f:
    print('hello world!', file=f)
# 内容输出到了 test.log 文件中,终端不会打印任何内容

同理可以指定输出到错误输出流 sys.stderr,file=sys.stderr

print 会自动换行,而 stdout 需要手动添加转义符 “\n”

1
2
print('hello world!')
sys.stdout.write('hello world!\n')

python 的缓冲类型有三种
满缓冲、行缓冲、无缓冲
而 sys.stdout 属于行缓冲,需要碰到换行符或者代码运行结束或者 flush=True 才会打印出内容
想要通过 print 实现 loading 加载的效果,我们需要设置 end=’’ 并加上 flush=True,这样 sys.stdout 才会改变缓冲类型,显示想要的效果