根据Python documentation,您必须在创建OptionGroup时提供解析器:
group = OptionGroup(parser, "Dangerous Options",
"Caution: use these options at your own risk. "
"It is believed that some of them bite.")
然后在您创建OptionGroup
:
parser.add_option_group(group)
我目前无法访问源代码,但稍后会访问。也许其他人都知道。
答案 0 :(得分:1)
OptionGroup
派生自OptionContainer
(OptionParser
也是如此),它提供(以及其他方法)add_option
和_check_conflict
。 parser
参数用于为其父__init__
方法提供一些参数:
class OptionGroup (OptionContainer):
def __init__(self, parser, title, description=None):
self.parser = parser
OptionContainer.__init__(
self, parser.option_class, parser.conflict_handler, description)
self.title = title
出于类似目的, self.parser
在另一个地方使用。因此,我认为您将parser
传递给__init__
,以便选项组在向其添加选项时的行为方式与解析器相同。
答案 1 :(得分:0)
因为OptParse开发人员没有添加
parser.add_option_group(self)
在OptionGroup类构造函数中。
:P