2013-12-15 5 views
5

Ich bearbeite meinen Python-Quellcode mit Eclipse und Pydev.Pre-fill neue Funktionen in Eclipse und Pydev mit Docstring und "nicht implementiert" Ausnahme

Ich möchte alle meine Funktionen dokumentieren und eine "Nicht implementiert" Ausnahme auslösen, wenn eine Funktion noch nicht implementiert wurde.

Zum Beispiel, wenn ich schreibe:

def foo(bar1,bar2): 

Auf betreten, würde ich es gerne automatisch zu vervollständigen:

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

Gibt es bereits eine Option in Pydev oder Eclipse, es zu tun? Wenn nicht, gibt es ein separates Python-Modul oder Skript, das es richtig macht?

+2

Es ist nicht wirklich klar, was Sie versuchen, hier zu tun. Was meinst du mit "alle meine Funktionen dokumentieren"? Der beste Weg, Funktionen zu "dokumentieren", die Sie implementieren möchten, aber noch nicht implementiert haben, besteht darin, einfach einen Stub für die Funktion zu schreiben und den Text als 'raise NotImplementedError' zu belassen (vielleicht mit einem Docstring, der die Funktion erklärt) einmal implementiert) – Iguananaut

Antwort

5

Derzeit kann die Dokumentation bereits erstellt werden.

d.h .: in einer 'def' Linie, Drücken von Strg + 1 wird eine Option "Erzeugte Docstring" zeigen (das Format jener docstring kann in Präferenzen> pydev> Editor> Code style> Docstrings definiert werden).

Wie für die raise NotImplementedError(""), gibt es derzeit keine Möglichkeit, das automatisch hinzuzufügen.

persönlich, was ich benutze, ist ein ‚abstrakter‘ Dekorateur wie:

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 

Und dann zu verwenden:

@abstract 
def my_func(xxx, yyy): 
    ... 

diese Weise, wenn jemand Ihren Code aufruft, sieht die Nachricht besser:)

0

Ich bin nicht 100% sicher, wie man es auf einmal macht, aber es kann in zwei Schritten durchgeführt werden. Sie müssen Ihre def Vorlagen anpassen. Gehen Sie zu Fenster-> Pydev-> Editor-> Vorlagen. Scrollen Sie nach unten, def, defc und defp und bearbeiten Sie sie. Wenn Sie eine neue Methode erstellen, beginnen Sie mit der Eingabe von def und verwenden Sie zweimal den Kontrollbereich, um zu Ihren Vorlagen zu gelangen. Wählen Sie die entsprechende Vorlage aus. Ändern Sie den Namen von der Methode zu dem, was Sie wünschen, und dies wird auch die NotImplemented-Ausnahme ausfüllen. Fügen Sie Ihre Argumente hinzu. Schritt zwei, bevor Sie die Definitionszeile verlassen drücken Sie Strg 1, und das wird Ihre Doc-Zeichenfolge ausfüllen.

ich meine DEFC zu

geändert
def ${method}(self):${cursor} 
    raise NotImplemented('${method}') 
Verwandte Themen