2013-12-15 8 views
5

EclipseとPydevでPythonのソースコードを編集しています。EclipseとPydevの新機能をdocstringと「実装されていない」例外で事前入力する

私のすべての機能を文書化し、機能がまだ実装されていないときはいつでも「実装されていない」例外を発生させたい。例えば

私が入力したときに次のように入力します。オン

def foo(bar1,bar2): 

を、私はそれがオートコンプリートしたいと思います:

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

はすでにそれを行うには、PyDevはまたはEclipseのオプションがありますか?もしそうでなければ、正しく動作する別のPythonモジュールやスクリプトがありますか?

+2

に私のDEFCを変えました。 「すべての機能を文書化する」とはどういう意味ですか?実装しようとしているがまだ実装していない関数を "ドキュメント化する"最も良い方法は、関数のスタブを書き、本体を 'raise NotImplementedError'としておくことです(関数が何のためになるかを説明するdocstring一度実装されると) – Iguananaut

答えて

5

現在、ドキュメントはすでに生成されている可能性があります。 「ドキュメント文字列生成」オプションが表示されますCtrlキー+ 1を押して「DEF」行で

すなわち:は、(それらのドキュメンテーション文字列の形式は、好み> PyDevは>エディタ>コードスタイル>のdocstringで定義されていることもあります)。

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

そのように誰かがあなたのコードを呼び出す場合、メッセージは良くなります。 )

0

私は一度にすべてを行う方法を100%確信していませんが、2つのステップで実行できます。 defテンプレートをカスタマイズする必要があります。 ウィンドウ - > Pydev-> Editor-> Templatesに移動します。 def、defc、defpまでスクロールして編集します。 新しいメソッドを作成するときにdefを入力し、コントロールスペースを2回使用してテンプレートを取得します。適切なテンプレートを選択します。 名前をメソッドから希望どおりに変更します。これにより、NotImplemented例外も埋め込まれます。 あなたの議論を追加してください。 ステップ2、定義行を終了する前に、ctrl 1を押してください。これはドキュメント文字列を埋めるでしょう。

私はそれはあなたがここで何をしようとして本当にはっきりしていない

def ${method}(self):${cursor} 
    raise NotImplemented('${method}') 
関連する問題