这不是关于如何使用argparse
,而是关于如何在程序中使用已解析的选项。
检查函数选项中的选项/使用值的好技术是什么?
一些想法:
- 使用全局变量(模块变量)
- 向要在其中使用值的函数添加参数并将其传递(可能不止一个函数级别)
if
每次取决于选项(使用全局变量?)时,使用 - 子句进行检查- 为某些检查定义特殊功能
我必须监督一些技术,这对于有很多选项的大型程序来说似乎是不可行的,尤其是当程序的不同部分有多个文件时。
这不是关于如何使用argparse
,而是关于如何在程序中使用已解析的选项。
检查函数选项中的选项/使用值的好技术是什么?
一些想法:
if
每次取决于选项(使用全局变量?)时,使用 - 子句进行检查我必须监督一些技术,这对于有很多选项的大型程序来说似乎是不可行的,尤其是当程序的不同部分有多个文件时。
在我看来,参数解析应该是在应用程序的入口点执行的东西。库/模块逻辑应该保持不可知,并使用参数进行初始化。
也就是说,如果您的可运行应用程序需要输入文件的路径,您的main()
入口点可以使用argparse
接受--infile
. 但是库函数readfile
应该不知道 argparse,并且要么是infile
作为成员属性接收的类的一部分,要么应该直接将其作为参数接收。
class Reader(object):
def __init__(self, infile):
self.infile = infile
def readfile(self):
# read(self.infile)
或者...
def readfile(infile):
# read(infile)
另一种方法是,如果您使用配置文件,并且有一个配置解析器模块。这可以被读入和解析,然后对需要全局应用程序配置选项的任何模块仍然可用。这种方法的一个例子是django 如何拥有它的settings
模块。django 项目中的任何应用程序都可以导入和查询设置。