pylint falso positivo para a superclasse __init__
Pergunta
Se eu derivar uma classe de ctypes.BigEndianStructure
, pylint avisa se eu não chamo BigEndianStructure.__init__()
. Grande, mas se eu corrigir o meu código, pylint ainda adverte:
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)
No começo eu achava que isso era porque a estrutura vem de um módulo C. Eu não receber o aviso se eu subclasse de uma das minhas aulas ou, digamos, SocketServer.BaseServer
que é pura python. Mas eu também não receber o aviso se eu subclasse de smbus.SMBus
, que está em um módulo C.
Alguém sabe de uma solução alternativa que não seja a desativação W0231?
Solução
Tente usar as chamadas super
novo estilo:
class Foo(ctypes.BigEndianStructure):
def __init__(self):
super(Foo, self).__init__()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow