为什么我不能将格式函数与docstrings一起使用?

时间:2014-02-17 20:25:32

标签: python docstring

我有一个像这样开始的功能:

def apply_weighting(self, weighting):
    """
    Available functions: {}
    """.format(weightings)

我想要的是docstring打印可用加权函数的字典。但是在检查函数时,它声明没有可用的文档字符串:

In [69]: d.apply_weighting?
Type:       instancemethod
String Form:<bound method DissectSpace.apply_weighting of <dissect.DissectSpace instance at 0x106b74dd0>>
File:       [...]/dissect.py
Definition: d.apply_weighting(self, weighting)
Docstring:  <no docstring>

为什么?是否无法格式化文档字符串?

1 个答案:

答案 0 :(得分:5)

Python解释器只查找字符串文字 。不支持添加.format()方法调用,不支持函数定义语法。编译器解析文档字符串而不是解释器,并且当时没有weightings之类的变量可用;目前没有代码执行。

您可以随时更新文档字符串:

def apply_weighting(self, weighting):
    """
    Available functions: {}
    """

apply_weighting.__doc__ = apply_weighting.__doc__.format(weightings)