使用docstring和“Not Implemented”异常预填充Eclipse和Pydev中的新函数

时间:2013-12-15 20:35:48

标签: python eclipse pydev

我正在使用Eclipse和Pydev编辑我的Python源代码。

我希望记录所有函数,并在尚未实现函数时引发“未实现”异常。

例如,当我输入:

def foo(bar1,bar2):

在输入时,我希望自动完成:

def foo(bar1,bar2):
'''
function foo
@param bar1:
@type: 
@param bar2:
@type
'''
raise NotImplementedError("")

Pydev或Eclipse中是否已有选项可以执行此操作?如果没有,是否有一个单独的Python模块或脚本可以正确地执行它?

2 个答案:

答案 0 :(得分:7)

目前,可以生成文档。

即:在'def'行中,按Ctrl + 1将显示选项“Generated Docstring”(这些docstring的格式可以在首选项> pydev>编辑器>代码样式>中定义)文档字符串)。

至于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):
    ...

这样,如果有人调用您的代码,则消息看起来更好:)

答案 1 :(得分:0)

我不是100%确定如何一次完成所有操作,但可以分两步完成。您需要自定义def模板。 转到Window-> Pydev->编辑器 - >模板。 向下滚动到def,defc和defp并编辑它们。 当您创建新方法时,请先键入def并使用控制空间两次以访问模板。选择适当的模板。  将名称从方法更改为您希望的内容,这也将填充NotImplemented异常。 添加你的参数。 第二步,在离开定义行之前按ctrl 1,这将填写你的文档字符串。

我将defc改为

def ${method}(self):${cursor}
    raise NotImplemented('${method}')