wake-up-neo.com

Python-Codierungskonvention "Falscher fortgesetzter Einzug vor Block: gefunden durch Pylint

Ich habe pylint verwendet, um meinen Python-Code zu überprüfen, und fand dieses Konventionsproblem:

C:11, 0: Wrong continued indentation before block.
                    + this_time <= self.max):
                    ^   | (bad-continuation)

Ich habe mal nachgearbeitet, aber das Problem ist immer noch vorhanden, kann jemand helfen? Vielen Dank!

if len(remaining_obj_list) > 0:
    for i in a_list:
        this_time = self.__get_time(i)
        for remaining_obj in remaining_obj_list:
            if (remaining_obj.get_time() # to fit 78 char rule
                + this_time <= self.max):
                i.append(remaining_obj)
                remaining_obj.set_used(True)
        if 0 == len(self.__get_unused_list):
            break
21
Reed_Xia

Pylint möchte nicht, dass diese Fortsetzung in derselben Spalte wie der nächste Einrückungsblock beginnt. Beachten Sie außerdem, dass die Nachricht einen Hinweis auf Spalten enthält, die ihrer Meinung nach korrekt sind.

30
sthenault

Platzieren Sie den + in der vorherigen Zeile:

        if (remaining_obj.get_time() +
            this_time <= self.max):

Als Randnotiz sollten Sie jedoch die Faktoren berücksichtigen, die dazu führen, dass Ihr Code aus ~ 40 Zeichen besteht. Möglicherweise verfügen Sie über zu viele Einrückungsebenen, und der Code könnte umgestaltet werden, um weniger geschachtelte Blöcke zu erhalten.

2
Amber

Gemäß PEP8 : "Der bevorzugte Ort zum Umbrechen eines binären Operators ist nach dem Operator, nicht davor."

Verschieben Sie das Pluszeichen in die vorherige Zeile.

0
feasel0

Suchen Sie nach falschen Tabulatoren (in Sublime: Strg + F, und geben Sie ein einzelnes Leerzeichen ein), und ersetzen Sie sie durch die richtige Anzahl von Leerzeichen. Ich hatte das gleiche Problem und während sich PyLint über die Fortsetzung der Leitung beschwerte, wurde der Fehler tatsächlich durch falsch platzierte Tabs ausgelöst.

Bei Einrückungen scheint PyLint nur Leerzeichen zu zählen und gibt diesen Fehler aus, wenn die Zahlen nicht ein Vielfaches von 4 ergeben. Je nach Editor werden falsch platzierte Tabulatoren möglicherweise nicht sofort angezeigt.

0
david