2

optparse我有一个使用 python模块在我的程序中处理命令行参数的类。它也被几个类继承以创建参数子集。为了封装选项解析机制,我只想展示一个add_option继承类的函数。这个函数所做的就是调用optparse.make_option.

add_option简单地让我的方法说它接受与optparse.make_option文档中相同的参数,并将参数转发为*args和,这是一个好习惯**kwargs吗?

我应该事先做一些参数检查吗?在某种程度上,我想避免这种情况,以便将该段代码与特定版本的optparse.

4

2 回答 2

1

似乎您希望您的子类了解命令行内容,这通常不是一个好主意。

您想封装程序的整个配置输入部分,以便您可以使用命令行、配置文件、其他 python 程序等来驱动它。

因此,我将从您的子类中删除对 add_option 的任何调用。

如果您想发现运行时的配置要求是什么样的,我只需将该数据添加到您的子类中;让每个人都有一个成员或方法,可以用来确定它需要什么样的输入。

然后,您可以让输入管理器类遍历它们,将这些数据拉出,并使用它来驱动命令行、配置文件或您拥有的东西。

但老实说,我从来不需要在运行时这样做。我通常将所有配置内容提取到它自己的单独的东西中,它回答了“用户需要告诉工具什么?”的问题,然后子类在配置数据结构中寻找他们需要的东西。

于 2009-08-25T14:07:35.420 回答
0

您确定子类化是您想要做的吗?您的压倒一切的行为可以只在一个函数中实现。

于 2009-08-25T13:32:30.440 回答