有没有一种方法可以为定义__call__的python对象定义文档字符串?

我有一个定义__call__的类,但是当用户在帮助返回中看到针对该“功能”的请求帮助时,他们会得到整个对象和方法,这可能有点令人生畏…我希望获得帮助如果可能的话,看起来更像是函数的帮助.

我跟踪了检查模块的内容,但由于无法继承函数类型和/或方法类型,因此这似乎不可行.我是否缺少某些东西,还是必须重新排列代码,以便动态构建真正的Python函数对象?

解决方法:

你想要的是行不通的. help()信息(和检查信息等)会将其显示为带有__call__方法的类,而不是函数.

如果您生成的对象除了调用外不需要支持任何其他功能,则可以使用闭包来返回实际函数:

def produce_callable(*args, **kw):
    instance = YourClass(*args, **kw)
    def callable_function(*args, **kw):
        """Docstring here"""
        return instance(*args, **kw)
    return callable_function

因此,不是返回自定义类实例,而是返回一个包装器函数,该函数将调用该类实例. help()信息将提供给该函数.

我在callable_function()签名中使用了* args和** kw通配符参数,但是如果您知道__call__方法接受了哪些参数,则可以在产生的函数中对其进行硬编码.

上一篇:java基础——实现Callable接口创建线程


下一篇:java接口请求超时处理方法