2
有沒有辦法爲**函數提供簽名引用(例如,用於IDE)?kwargs和函數簽名
例如:
def foo(**kwargs):
# call some third-party library with kwargs signature
我想提供最新的IDE
所以自動完成,我怎麼形容在Python
有沒有辦法爲**函數提供簽名引用(例如,用於IDE)?kwargs和函數簽名
例如:
def foo(**kwargs):
# call some third-party library with kwargs signature
我想提供最新的IDE
所以自動完成,我怎麼形容在Python
簽名這是不是你想要的東西相當,但它可能... help
。
from other_package import my_function
def wrapped_help_text(wrapped_func):
"""Decorator to pass through the documentation from a wrapped function.
"""
def decorator(wrapper_func):
"""The decorator.
Parameters
----------
wrapped_func : callable
The wrapped function.
"""
wrapper_func.__doc__ = ('This method wraps the following method:\n\n' +
pydoc.text.document(wrapped_func))
return wrapper_func
return decorator
@wrapped_help_text(my_function)
def wrapper(**kwargs):
"""
Parameters
----------
**kwargs
See other_package.my_function()
"""
my_function(**kwargs)
有了這個,你現在可以調用內置help
功能查看包裝的函數的文檔字符串。
我不認爲除了明確簽名並避免使用'** kwargs'之外,還有其他方法可以做到這一點。它還取決於IDE如何獲取函數簽名 - 它解析AST還是實際導入模塊? – mgilson
我想同樣的方式)但我想應該有一種方式來描述這一點。也許某種形式的評論 – kharandziuk
如果你正在尋找神奇的評論,那完全取決於IDE。 python3.x增加了一些IDE可以反省的函數註釋,但是再次,這不會幫助你描述kwargs,而不僅僅是寫出它們。 – mgilson