一些背景知识(不是必需的,但可能很想知道):我正在编写一个Python命令行模块,它是latexdiff
的包装器。它基本上是在将文件传递给latexdiff
之前,用写出并正确格式化的引用替换LaTeX文件中的所有\cite{ref1, ref2, ...}
命令,这样latexdiff
将正确标记文本中引用的更改(否则,它将整个\cite{...}
命令视为单个“单词”)。所有代码目前都在一个可以用python -m latexdiff-cite
运行的文件中,我还没有决定如何打包或分发它。为了使脚本对其他人有用,引文格式需要是可配置的。我实现了一个可选的命令行参数-c CONFIGFILE
,允许用户指向自己的JSON配置文件(默认文件位于模块文件夹中,如果不使用该参数,则加载该文件)。在
当前实现:我的单文件命令行Python模块当前解析if __name__ == '__main__'
中的命令行参数,并在运行程序的主函数之前在此加载配置文件(由用户在-c CONFIGFILE
中指定)。因此,config变量在整个模块中都是可用的,而且一切正常。但是,我正在考虑通过遵循this guide发布到PyPI,这似乎要求我将命令行解析放在一个main()
函数中,这意味着除非将config变量作为参数传递到需要它的地方,否则其他函数将无法使用config变量。这种“通过参数传递”的方法在我看来有点混乱。在
问题:在模块中设置一些配置全局参数或完成我正在尝试的功能,是否有更为python式的方法?(我不想依赖第三方模块。)我是否可能在某些基本方面完全偏离轨道?在
一种方法是在类或简单dict中定义配置:
然后您的应用程序可以通过这个类访问设置:
Config.setting1
。。。在相关问题 更多 >
编程相关推荐