假设我有一个命令:
class Command(object):
help = 'roll over and die'
def add_arguments(self, parser):
parser.add_argument(
'--foo',
help='see command help',
choices=['die','die_painfully'],
required=True
)
parser.add_agument( ... ) x 9001
现在我希望有一个几乎完全相同的类,但我不想要论证'--foo'了。如果我super
继承方法中的洞add_arguments
或某事,你可以以某种方式修改该解析器吗?
答案 0 :(得分:1)
您可以使用类属性:
class Command(object):
help = 'roll over and die'
foo_required = True
def add_arguments(self, parser):
parser.add_argument(
'--foo',
# ...
required=self.foo_required
)
然后继承Command
:
class Command(foo.bar.Command):
foo_required = False
您不必覆盖add_arguments
。