访问argparse的类属性docstring

时间:2018-10-11 15:55:01

标签: python argparse docstring

我目前在类似于此类的类中使用argparse:

class MyClass:

  P_OPT = "my-opt"
  """This is an option to my script."""

  P_OPT_HELP = "This is an option to my script"
  """Description for argparse"""

  def __init__(self, **kwargs):
      # do stuff here
      pass

  @classmethod
  def parse_arguments(cls):
      parser = argparse.ArgumentParser()
      parser.add_argument('--' + cls.P_OPT, help=cls.P_OPT_HELP)

def main():
    MyClass(**MyClass.parse_arguments())

工作正常,但是我有很多选择和参数,P_OPT文档字符串和P_OPT_HELP的内容之间存在冗余。另外,我还必须为P_OPT_HELP做一个文档字符串,否则我的项目linter仍然会感到不满意。 PEP 224决定在运行时没有内置的方法可以访问类和实例属性docstring。

是否有模块或聪明的python技巧来做到这一点?

到目前为止,我所考虑的只是使用dict,它不能防止冗余,但不会对我的类名称空间造成太大的污染:

P_OPT = {"name": "my-opt", "help": "This is an option to my script"}
"""This is an option to my script"""

然后:

parser.add_argument('-' + P_OPT["name"], help=P_OPT["help"])

0 个答案:

没有答案