Wenn ich eine Klasse von ctypes.BigEndianStructure ableiten, Warnt Pyylint, wenn ich BigEndianStructure nicht aufrufen. Init(). Großartig, aber wenn ich meinen Code zu beheben, Pylint noch warnt:pylint falsch positiv für Superklasse __init__
import ctypes
class Foo(ctypes.BigEndianStructure):
def __init__(self):
ctypes.BigEndianStructure.__init__(self)
$ pylint mymodule.py
C: 1: Missing docstring
C: 3:Foo: Missing docstring
W: 4:Foo.__init__: __init__ method from base class 'Structure' is not called
W: 4:Foo.__init__: __init__ method from base class 'BigEndianStructure' is not called
R: 3:Foo: Too few public methods (0/2)
Zuerst dachte ich, das war, weil Struktur aus einem C-Modul kommt. Ich erhalte die Warnung nicht, wenn ich von einer meiner Klassen oder, sagen wir, SocketServer.BaseServer, die reines Python ist, ableiten. Aber ich bekomme auch keine Warnung, wenn ich von smbus.SMBus, das in einem C-Modul ist, abstammt.
Wer kennt eine andere Problemumgehung als das Deaktivieren von W0231?
Ahh, das sollte die offensichtliche Sache zu versuchen gewesen. Vielen Dank. Es behebt die Warnung. Ich bin aber neugierig, verwenden Struktur/BigEndianStructure super()? Der Ratschlag, den ich gesehen habe, ist super(), wenn die Superklasse super() verwendet ... – bstpierre