2012-04-09 2 views
1

Python documentationによると、あなたはオプショングループを作成する際に、パーサーを提供する必要があります。OptionGroupを作成するときにパーサーを2回提供する必要があるのはなぜですか?

parser.add_option_group(group) 

私が持っていない:あなたはOptionGroupを作成し終わった後、それを追加明示的に

group = OptionGroup(parser, "Dangerous Options", 
        "Caution: use these options at your own risk. " 
        "It is believed that some of them bite.") 

をと現時点ではソースコードにアクセスしますが、後で実行します。多分誰かが知っているでしょう。

答えて

0

optparseの開発者は、オプショングループクラスのコンストラクタに

parser.add_option_group(self) 

を追加しませんでしたので。

:P

1

OptionGroupは(他の方法の中で)提供し、OptionContainerからadd_option_check_conflictと(そうOptionParser)を導出します。 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__に渡すだけだと思う​​ので、オプション群をオプションを追加するときにパーサと同じように振る舞います。

関連する問題