Why can't I use the format function with docstrings?
docstring, python
Solution
The Python interpreter looks for string literals only. Adding a `.format()` method call is not supported, not for the function definition syntax. It is the compiler that parses out the docstring, not the interpreter, and any variables like `weightings` are not available at that time; no code execution takes place at this time.
You can always update a docstring after the fact:
def apply_weighting(self, weighting):
"""
Available functions: {}
"""
apply_weighting.__doc__ = apply_weighting.__doc__.format(weightings)
Problem
I have a function that starts like this: ``` def apply_weighting(self, weighting): """ Available functions: {} """.format(weightings) ``` What I want is for the docstring to print the dictionary of available weighting functions. But when inspecting the function it states that there are no docstring available: ``` 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> ``` How come? Is it not possible to format a docstring?