我有一个像这样开始的功能:
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>
为什么?是否无法格式化文档字符串?
答案 0 :(得分:5)
Python解释器只查找字符串文字 。不支持添加.format()
方法调用,不支持函数定义语法。编译器解析文档字符串而不是解释器,并且当时没有weightings
之类的变量可用;目前没有代码执行。
您可以随时更新文档字符串:
def apply_weighting(self, weighting):
"""
Available functions: {}
"""
apply_weighting.__doc__ = apply_weighting.__doc__.format(weightings)