Python Docstrings - определить единый список параметров для нескольких классов - PullRequest
0 голосов
/ 03 февраля 2020

Я определяю четыре функции и два класса, которым требуется всегда один и тот же огромный список аргументов. Это выглядит так:

class A_operator:
    """
    The class operating for A.

    Attributes
    ----------
    arg1: int
        description here.
    ...
    argN: int
        description here.
    """
    def __init__(arg1, ... argN):
        """
        My __init__ function which takes globally the same params.

        Args
        ----
        arg1: int
            description here.
        ...
        argN: int
            description here.
        """


def A(arg1, ... argN):
    """
    My A function

    Args
    ----
    arg1: int
        description here.
    ...
    argN: int
        description here.
    """

def B(arg1, ... argN):
    """
    My A function

    Args
    ----
    arg1: int
        description here.
    ...
    argN: int
        description here.
    """

Это очень тяжело !!!

Что бы я хотел:

  1. Я хочу чтобы один раз определить огромный список параметров, чтобы его можно было изменить один раз.
  2. Я хочу, чтобы документалы были понятны при использовании Sphinx или при наборе A? в i python для получения справки.
  3. В конце концов, все эти функции нуждаются в одинаковых параметрах с одинаковыми настройками по умолчанию. В конечном итоге я должен использовать *args или **kwargs и написать код, чтобы получить все аргументы и установить значение по умолчанию, но это не будет видно при вводе A? в i python ...

Это работает?

args = """arg1: int
    description here.
...
argN: int
    description here.
"""

def kwargs2dico(**kwargs):
    """Transforms kwargs dico into output with defaults.

    Args
    ----
    {}
    """.format(args)
    return dico

def B(**kwargs):
    """
    My A function

    Args
    ----
    {}
    """.format(args)
    dico = kwargs2dico(**kwargs)
    locals().update(dico)
    ...

Спасибо!

...