Я определяю четыре функции и два класса, которым требуется всегда один и тот же огромный список аргументов. Это выглядит так:
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.
"""
Это очень тяжело !!!
Что бы я хотел:
- Я хочу чтобы один раз определить огромный список параметров, чтобы его можно было изменить один раз.
- Я хочу, чтобы документалы были понятны при использовании Sphinx или при наборе
A?
в i python для получения справки. - В конце концов, все эти функции нуждаются в одинаковых параметрах с одинаковыми настройками по умолчанию. В конечном итоге я должен использовать
*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)
...
Спасибо!