相关疑难解决方法(0)

Python动态帮助和自动完成生成

我几乎有我想要的......

此动态对象使用动态docstring生成封装通用函数调用:

def add_docs(tool):  
    def desc(func):  
        func.__doc__ = "Showing help for %s()" % tool
        return func
    return desc

class Dynamic(object):
    def __getattr__(self, value):
        @add_docs(value)
        def mutable_f(*args, **kwargs):
            print "Calling:", value
            print "With arguments:", args, kwargs

        return mutable_f
Run Code Online (Sandbox Code Playgroud)

它按预期工作:

>>> Dynamic().test(1, input='file')
Calling: test
With arguments: (1,) {'input': 'file'}
>>> Dynamic().test.__doc__
'Showing help for test()'
Run Code Online (Sandbox Code Playgroud)

唯一的两个问题是帮助显示mutable_f签名

>>> help(Dynamic().test)
Help on function mutable_f in module __main__:

mutable_f(*args, **kwargs)
    Showing help for test()
(END)
Run Code Online (Sandbox Code Playgroud)

并且没有自动完成(我可以在运行中获得有效函数列表,并缓存它,因为该操作很昂贵)

我认为第一个是无法解决的,但我对第二个不太确定.想法?

python autocomplete docstring dynamic

2
推荐指数
1
解决办法
2655
查看次数

标签 统计

autocomplete ×1

docstring ×1

dynamic ×1

python ×1