Python 2和3中unicode / str参数的正确文档字符串是什么

时间:2018-10-25 10:41:07

标签: python python-sphinx

我有一个方法可以在Python 2中接受一个unicode参数,但是在Python 3中它可以接受一个str
我想知道如何为此功能编写sphinx docstring:
:param unicode text::param str text:还是Python 2和Python 3的单独文档?

示例:

def myfunction(text):
    """Do something with text
    :param unicode text: Must be unicode
    :rtype: unicode
    :raises TypeError: If text is not a unicode
    """
    if PY2 and not isinstance(text, unicode):
        raise TypeError("Argument 'text' must be unicode")
    ...
    return text

1 个答案:

答案 0 :(得分:2)

我不相信six.text_type会有更简单的方法。

最重要的是:  -请仔细检查您是否确实需要unicode而不是basestring,这看起来是非Python的  -如果您正在迁移到PY3,并且这是兼容性问题,只需使用str和PY3的文档  -写下PY3的类型并阐明描述上的差异。 Docstrings对人类来说是100%,只要考虑一下它是否更容易在罕见的情况下阅读1个音符或每次解密密码都怪异的兼容类型