您当前位置:首页 > 深入 Python > 您的第一个 Python 程序 > 测试模块 | << >> | ||||
深入 Python从 Python 新手到专家 |
Python 模块是对象,并且具有几个有用的属性。您可以利用这一点在编写模块时轻松地对其进行测试。下面是一个使用 if __name__ 技巧的示例。
在您开始了解好东西之前,先快速观察一下。首先,if 表达式周围不需要括号。其次,if 语句以冒号结尾,后面跟着缩进的代码。
![]() |
|
与 C 语言一样,Python 使用 == 进行比较,使用 = 进行赋值。与 C 不同,Python 不支持内联赋值,因此不会出现意外赋值为您认为要比较的值的情况。 |
那么为什么这个特定的 if 语句是一个技巧呢?模块是对象,并且所有模块都有一个内置属性 __name__。模块的 __name__ 取决于您如何使用该模块。如果您 import 该模块,则 __name__ 是模块的文件名,不带目录路径或文件扩展名。但是您也可以直接将模块作为独立程序运行,在这种情况下,__name__ 将是一个特殊的默认值,即 __main__。
>>> import odbchelper >>> odbchelper.__name__ 'odbchelper'
了解了这一点,您就可以通过将测试套件放在这个 if 语句中来为模块设计测试套件。当您直接运行模块时,__name__ 是 __main__,因此测试套件会执行。当您导入模块时,__name__ 是其他值,因此测试套件会被忽略。这使得在将新模块集成到更大的程序之前更容易开发和调试它们。
![]() |
|
在 MacPython 上,要使 if __name__ 技巧生效,还需要执行一个额外的步骤。单击窗口右上角的黑色三角形弹出模块的选项菜单,并确保选中了 。 |
<< 代码缩进 |
| 1 | 2 | 3 | 4 | 5 | 6 | |
原生数据类型 >> |