如何专门使用全局docstring?

时间:2015-11-19 09:38:35

标签: python global local docstring

我想在命令帮助中使用全局doctstring。这是一个工作的例子:

"""
This is a global description.

Usage:
    Use it like so::

    $ python my_fancy_script <my_fancy_name>
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals

import django.core.management as management

logger = logging.getLogger(__name__)

class Command(management.base.BaseCommand):
    """
    This is a local doc.
    """
    args = '<work_db_name>'
    help = globals()['__doc__']

这感觉很难看,我想知道是否还有另一种方法可以专门使用全局docstring。一旦你做了

help = '__doc__' 

将使用本地说明,即Command的文档字符串。

1 个答案:

答案 0 :(得分:0)

假设help是Django特定成员并且你需要它(虽然我从来没有听说过Django会干扰内置函数),

help = __doc__

应该这样做,这与globals()['__doc__']基本相同,因为在模块级范围内查找__doc__个气泡。在最糟糕的情况下,__doc__None,然后是

help = __doc__ or Command.__doc__

可以使用(或类似的东西)。

如果不使用help变量,我可以采取以下方式:

""" module doc """
class C: pass
C.__doc__ = __doc__