特殊变量
python用下划线作为变量的前缀和后缀指定特殊变量.
_XXX : 不用 'from module import *' 导入, 可以认为是模块中的私有变量
__XXX__ : 系统定义的名字
__XXX : 类中的私有变量
避免用下划线开头作为变量名称
模块布局
(1) 起始行(unix)
(2) 模块文档, 简介模块的功能和重要的全局变量的含义, 模块外可通过 module.__doc__ 访问这些内容
(3) 模块导入
(4) 变量定义, 这里指的是全局变量, 本模块中的所有函数都可以直接使用. 从好的编程风格角度说, 除非必须, 否则尽量使用局部变量代替全局变量
(5) 类定义
(6) 函数定义
(7) 主程序
测试代码
在主程序中书写测试代码
测试代码仅当文件被执行时运行(不是文件作为模块被其他模块导入), 我们应该利用 __name__这个有利条件, 将测试代码放在名字叫main()或者test()的函数中. 如果该模块被当作脚本运行, 就调用该模块.
编程调试
debugger : pdg, 允许设置断点, 调试
logger : logging, 程序日志系统
profiles: profile, hotshot, cProfile
匿名函数
python允许使用lambda关键字创建匿名函数. 可以有参数
lambda 表达式返回可调用的函数对象.
lambda : True
在上边的例子中, 我们简单的用 lambda 创建了一个函数(对象), 既没有在任何地方保存它, 也没有在任何地方调用它. 这个函数的引用计数在函数创建时被设置为True, 但是因为没有引用保存下来, 计数又回到 0 , 然后被垃圾回收. 为了保留住这个对象, 我们将它保存在一个变量中, 以后可以随时调用.
true = lambda : True
true()
闭包
看样子跟 javascript 类似, 函数中定义函数.