我正在用Eclipse和Pydev编辑我的Python源代码。
我想记录我的所有函数,并在函数尚未实现时引发"未实现"异常。
例如,当我键入:时
def foo(bar1,bar2):
进入时,我希望它自动完成到:
def foo(bar1,bar2):
'''
function foo
@param bar1:
@type:
@param bar2:
@type
'''
raise NotImplementedError("")
Pydev或Eclipse中是否已经有这样的选项?如果没有,是否有一个单独的Python模块或脚本可以正确地执行此操作?
目前,文档已经可以生成了。
即:在"def"行中,按Ctrl+1将显示一个选项"Generated Docstring"(这些文档字符串的格式可以在preferences>pydev>editor>code-style>docstrings中定义)。
至于raise NotImplementedError("")
,目前还没有办法自动添加。
就我个人而言,我使用的是一个"抽象"装饰器,例如:
def abstract(func):
def wrapper(self, *args, **kwargs):
msg = 'Method %r not implemented in class %r.' % (func.__name__, self.__class__)
raise NotImplementedError(msg)
wrapper.__name__ = func.__name__
wrapper.__doc__ = func.__doc__
return wrapper
然后使用:
@abstract
def my_func(xxx, yyy):
...
这样,如果有人调用您的代码,消息看起来会更好:)
我不能100%确定如何一次完成所有操作,但可以通过两个步骤完成。你需要自定义你的def模板。转到窗口->Pydev->编辑器->模板。向下滚动到def、defc和defp并编辑它们。当您创建一个新方法时,开始键入def,并使用控制空间两次来获取模板。选择适当的模板。将方法的名称更改为您想要的名称,这也将填充NotImplemented异常。添加您的论点。第二步,在离开定义行之前,按ctrl1,这将填充您的文档字符串。
我将defc更改为
def ${method}(self):${cursor}
raise NotImplemented('${method}')