
496
|
附录
B
义在 main 中的变量了。这等价于在
Jupyter notebook
的代码框中定义一个顶级变量。
扁平优于嵌套
深层嵌套的代码总让我联想到洋葱皮。当测试或调试函数时,你需要剥多少层洋葱皮才
能到达目标代码呢?“扁平优于嵌套”是
Python
之禅的一部分,它也适用于交互式代码
开发。尽量将函数和类解耦和模块化有利于进行交互式测试(如果你在编写单元测试)、
调试和使用。
克服对长文件的恐惧
如果你之前接触过
Java
(或者其他类似的语言),可能已经知道要让文件尽量简短。在多
数语言中,这都是合理的建议,代码太长会让人觉得是坏代码,有必要对代码进行重构
和重组。但是,在用
IPython
开发时,处理
10
个相关联的小文件(比如小于
100
行)比
处理两个或三个长文件更让人头疼。更少的文件意味着重载模块更少,以及编写代码时
在各文件间跳转更少。我发现维护大模块,每个模块都是高内聚的(所有代码都用于解
决同类问题),会更实用且符合
Python
的风格。当然,经过方案迭代,有时会将大文件
分解成小文件。
不过,我不建议极端化地实践这条建议,否则就是将所有代码放到一个单独的怪异文件
中。为了组装大型代码库而寻找合理且直观的模块和包,往往需要不少工作,最好以团
队合作的方式进行。每个模块都应该是内聚的,并且应该能直观地找到负责每个功能的
函数和类。
B.7
高阶
IPython
特性
要充分利用
IPython
系统,需要用另一种稍微不同的方式来编写代码或者深入研究
IPython
配置。
文件和配置
通过扩展配置系统,
IPython