Wie repariere ich PyDev "Methode sollte selbst als ersten Parameter haben" Fehler

8

Ich entwickle Python mit PyDev in Eclipse, und ein Teil meines Codes erzeugt Fehler im Code-Analyse-Tool. Speziell:

%Vor%

Gibt mir einen "Method '__enter__- group' should have self as first parameter" Fehler und einen ähnlichen Fehler für __exit__ . Gibt es eine Möglichkeit, dies zu lösen, ohne self einer anderen Variablen zuzuweisen und die Variable in den anderen Methodensignaturen wiederzuverwenden?

    
Chris B. 21.01.2010, 20:47
quelle

7 Antworten

18

Sie könnten diesen Fehler in den Einstellungen deaktivieren ...

%Vor%

Oder refaktorieren Sie den Code ...

%Vor%

Was erwartest du noch? Die Fehlerprüfungen helfen Ihnen dabei. Wenn Sie nicht glauben, dass es sich um legitime Fehler handelt, deaktivieren Sie sie oder refaktorieren Sie den Code.

In diesem Fall würde ich den Code umgestalten. Es ist besser lesbar, wie die Antwort von König Radical zeigt. Er hat nicht verstanden, dass s ein weiteres self war.

    
FogleBird 21.01.2010, 20:53
quelle
15

Die Verwendung von Ctrl+1 in einer Zeile mit einem Fehler von PyDev bringt Ihnen immer eine Korrektur, mit der Sie den PyDev-Fehler in der Zeile ignorieren können. In diesem speziellen Fall können Sie den Fehler ignorieren, indem Sie #@NoSelf am Ende der Zeile hinzufügen. Ctrl+1 ist auch nützlich, wenn ein nicht verwendeter Import benötigt wird und in anderen Situationen.

    
Fabio Zadrozny 12.02.2010 01:00
quelle
2

Es sollte in erster Linie kein Fehler sein, da die Verwendung von "Selbst" nur eine allgemein akzeptierte Konvention ist. Es sollte höchstens eine Warnung sein, im Sinne von "Sind Sie sicher, dass Sie die Klasseninstanz als erstes Argument verwenden?"

    
Albert Visser 21.01.2010 23:35
quelle
2

IMO, das ist eine alberne Warnung. Der Name "self" ist nur eine Konvention. Ich habe die Angewohnheit, den Namen "_" zu verwenden, um die Namen der Mitglieder deutlicher zu machen,

%Vor%

und ich bekomme diese Warnung in meiner ganzen Bibliothek von Tausenden von Codezeilen. Also werde ich diese Warnung ausschalten. Wäre schön, in der Lage sein zu spezifizieren "für dieses Projekt verwende ich '_' per Konvention" ...

    
Steve Carter 28.10.2011 09:52
quelle
2

PyDev sagt Ihnen, dass Python-Klassenmethoden self als erste Variable haben müssen, wenn sie auf die Klassenvariablen zugreifen. Siehe: Ссылка

Edit: Es kam mir anfangs nicht in den Sinn, dass Sie s anstelle von self verwenden, aber im Hinblick auf die anderen Antworten könnte das der Fall sein. Wenn Sie dies jedoch tun, müssen Sie auch s als Ihre Variable in der Methode verwenden und nicht self .

    
GreenMatt 21.01.2010 20:54
quelle
0
%Vor%

und

%Vor%

Klassenmitgliedermethoden müssen immer ihren ersten Parameter self

haben     
KingRadical 21.01.2010 20:50
quelle
0

Sie können einen Dekorateur verwenden:

%Vor%

Die integrierte Funktion, die für diesen Zweck verwendet wird

    
Gustavo Labegalini 25.07.2017 07:18
quelle

Tags und Links