如何使Sphinx不忽略python类方法的第一个参数?

时间:2018-07-06 13:20:36

标签: python-sphinx

我想用sphinx做我的python3代码的非常基本的文档。

我的代码示例如下:

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 :(得分:0)

您的函数function1不是staticmethod,因此第一个arg是self

class myClass:

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

要使x出现,可以将x添加为另一个arg或使该方法为静态方法

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,您不必在方法调用中指定它