根据PEP 257,命令行脚本的文档字符串应该是它的使用信息:
脚本(独立程序)的文档字符串应该可用作其“使用”消息,在使用不正确或缺少参数(或者可能使用“-h”选项,用于“帮助”)调用脚本时打印。这样的文档字符串应该记录脚本的函数和命令行语法、环境变量和文件。使用消息可以相当详细(几个屏幕已满),并且应该足以让新用户正确使用命令,以及对老练用户的所有选项和参数的完整快速参考。
并且文档字符串应该是作为模块级别的第一个字符串,在其他任何东西之前,都可以作为__doc__
.
现在,我还使用docopt
消息解析器,所以我只需要编写文档字符串,它自己构建命令行解析器,这很棒。
_("""...""")
不是那么好,是我找不到将文档字符串标记为 gettext 的 i18nable 的方法,因此我可以在将其转换为其他语言时将其转换为docopt
. 当时我得到的唯一解决方案是在翻译所有应用程序的其他字符串时,使用法和帮助消息保持为英文!
正如PEP 20所述:
应该有一种——最好只有一种——明显的方法来做到这一点。
虽然这种方式一开始可能并不明显,除非你是荷兰人。
绕过无法优雅地将文档字符串标记为可翻译的限制的最佳方法是什么?
注意:在这里,我们认为我正在模块中进行操作gettext.install()
,__init__.py
以便在解析_()
之前就存在于内置函数中。__doc__