避免在Sphinx文档中扩展sys.argv关键字参数

时间:2012-10-02 10:10:18

标签: python python-sphinx

我有一个像这样的课程

import sys

class ACommand(object):

    @classmethod
    def cmd(cls, argv=sys.argv):
        " Executes the command. "
        pass

使用Sphinx对其进行记录时,会将sys.argv扩展为当前值,从而产生类似以下签名的内容

classmethod cmd(argv=['/path/to/sphinx-build', '-b', 'html', '-d', '_build/doctrees', '.', '_build/html'])

我觉得在文档中使用sys.argv比扩展更方便。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以创建代理对象,例如

class ListProxy(object):
    def __init__(self, l):
        self.list = l
    def __getitem__(self, i):
        return self.list[i]

然后

@classmethod
def cmd(cls, argv=ListProxy(sys.argv)):
    " Executes the command. "

或者,更容易,你可以做到

@classmethod
def cmd(cls, argv=None):
    " Executes the command. "
    if argv is None:
        argv = sys.argv