相对导入指向谁
补全 resolve(current, rel):current 是当前模块全名,rel 是相对导入写法。一个点表示当前模块所在的包,每多一个点往上一层;点后面没有名字时表示那个包本身。返回被导入模块的全名。
一导入就开始跑的模块
场景:同事写的数学工具模块自带演示:一 import 它,屏幕上就先打出演示,还停下来等人按回车——别的脚本根本没法正常用它。 任务:改 ~/work/tools/mathx.py:被 import 时什么都不打印、不等输入;直接 pyth
把几个文件组织成包
场景:三个互相引用的文本处理文件,只有 cd 进它们的目录才跑得起来;别的项目想 from textkit import … 更是不行。 任务:在 ~/work/proj 下做到两件事:python3 -m textkit.cli samp
只看第二十轮
循环要跑几百轮,你只想看 i == 20 那一轮时某个变量的值,最省事的办法是【0】。
崩溃之后停在哪
用 python3 -m pdb 运行一个会崩的程序,输入 c 让它跑到崩溃,pdb 会停在【0】。
记下第五轮的值
程序只关心最终结果,但你需要知道 i == 4 那一轮更新完之后 acc 是多少。补全后输出 那一轮的值/最终值。
循环到一半时的变量
场景:一个累加程序只打印最终结果。现在怀疑中间某一轮就算歪了,需要看那一轮的现场。 任务:~/work/walk.py 只打印最终的 acc。找出 ~/题目.txt 里指定的那一轮(i 等于某个值)走到「检查点」那一行时 acc 的值。 可
崩溃现场的那条记录
场景:一个建树程序读几十条记录,其中一条数据有问题。报错只说 'NoneType' object has no attribute,并没有说是哪一条。 任务:python3 ~/work/tree/tree.py 会崩。找出
最省内存的读法
处理几百万行的日志文件,内存占用最小的读法是【0】。
热点看哪一列
用 python3 -m cProfile -s cumtime 找热点时,最该先看的是【0】最大的函数。