Как заставить sphinx не игнорировать первый аргумент методов класса python? - PullRequest
0 голосов
/ 06 июля 2018

Я хотел бы сделать основную документацию по моему коду Python3 с помощью sphinx.

Пример моего кода выглядит так:

class MyClass:
    """
    Class description
    """
    def function1(x, y, z):
        """
        function description
        """
        pass

и соответствующая часть в моем файле index.txt для сфинкса:

.. automodule:: code.module_name
.. autoclass:: MyClass
   :members:

В результате, в противном случае, документация соответствует ожиданиям, но функция выглядит так:

function1(y,z)
function description

вместо желаемого

function1(x,y,z)
function description

Короче говоря, как заставить sphinx не игнорировать первый аргумент методов класса python?

Я долго искал ответ на эту проблему и не нашел ответов, которые помогли бы мне преодолеть ее. Я ценю любую помощь.

1 Ответ

0 голосов
/ 06 июля 2018

Ваша функция function1 не является staticmethod, поэтому первый аргумент self:

class myClass:

    def function1(x, y, z):
        # x in this case is an alias for self

Чтобы отобразить x, либо добавьте x в качестве другого аргумента, либо используйте метод static

1:

class myClass:
    def function1(self, x, y, z):
        # Now x is an explicit var

2

class myClass

    @staticmethod
    def function1(x,y,z):
        # Now your class does not have access to self, but x is an explicit arg

Он будет пропущен self, поскольку он неявно предоставляется функции, вам не нужно указывать его при вызове метода

...