Powiedzmy mam klasy jak poniżej:Jak przesłonić parametry konstruktorów w Sphinx przy pomocy autodoc?
class MyClass(object):
""" Summary docs for my class.
Extended documentation for my class.
"""
def __init__(self, *args):
self.values = np.asarray(args)
Jeśli używam Sfinks z rozszerzeniem autodoc
udokumentowanie tej klasy tak:
.. automodule:: mymodule
:members:
... podpis konstruktora pojawia się jako MyClass(*args)
. Wolałbym to zastąpić i udokumentować jako, powiedzmy, .
Gdyby to była funkcja, mógłbym zastąpić podpis w pierwszym wierszu docstrukcji. Ale ta sztuczka nie działa na klamrę klasową. W jaki więc sposób mogę przesłonić sygnaturę konstruktora?
Ukrywanie prawdziwego podpisu od użytkowników wydaje mi się złym pomysłem. –
@LevLevitsky - konstruktor jest zawsze wywoływany z pewną liczbą argumentów. Niezależnie od tego, czy jest to "* args", czy "arg1, arg2, ...", jest to szczegół implementacji i może się zmienić w dowolnym momencie. Nie ma "prawdziwego" sygnatury połączenia - użytkownik powinien przekazać to, co jest udokumentowane jako dopuszczalne parametry. – detly
Istnieje różnica w zachowaniu (na przykład w przypadku nadmiernych argumentów). –