返回介绍

使用带有 __name__ 的命令行参数

发布于 2024-01-29 22:24:15 字数 1246 浏览 0 评论 0 收藏 0

这里是一个更为真实的模块示例,它展示了通常使用__name__技巧的另一种方式。如下的模块formats.py,为导入者定义了字符串格式化工具,还检查其名称看它是否作为一个顶层脚本在运行;如果是这样的话,它测试并使用系统命令行上列出的参数来运行一个定制的或传入的测试。在Python中,sys.argv列表包含了命令行参数,它是反映在命令行上录入的单词的一个字符串列表,其中,第一项总是将要运行的脚本的名称:

这个文件在Python 2.6和Python 3.0中都能工作。当直接运行时,它像前面那样测试自己,但是它使用命令行上的选项来控制测试行为。请你自己直接运行这个文件而不带命令行参数,看看它的自测试代码打印出什么。要测试特定的字符串,用一个最小的字段宽度将它们传入到命令行上:

和前面一样,由于这段代码针对双模式用法编写,我们一般也可以把这些工具作为库的部分导入到其他的环境中:

由于这个文件使用了第15章介绍的文档字符串功能,我们也可以使用help函数来研究其工具——它充当一个通用目的的工具:

我们可以用类似的方式来使用命令行参数,为脚本提供通用的输入。这些脚本可能也会把自己的代码包装成函数和类以供导入者重用。想了解更高级的命令行处理,请参阅Python的标准库和手册中的getopt和optparse模块。在某些环境中,我们也可以使用第3章介绍的以及第10章使用的内置input函数,来提示shell用户以测试输入,而不是从命令行提取输入。

注意:还请参阅第7章对于将在Python 3.1及以后的版本中可用的新的{,d}字符串格式化方法的语法;该方法像这里的代码一样,用千分位组的方式来格式化扩展。而这里列出的模块添加了货币格式,并且在Python 3.1之前的版本中,可以作为逗号插入的一种手动替代方式。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文