Pylint false positives
Jon Ribbens
jon+usenet at unequivocal.eu
Tue Aug 14 11:18:13 EDT 2018
On 2018-08-14, Steven D'Aprano <steve+comp.lang.python at pearwood.info> wrote:
> If there really are a lot of such missing methods, I'd consider writing
> something like this:
>
> class A:
> def __init__(self, ...):
> ...
>
> # === process abstract methods en masse ===
> for name in "method_a method_b method_c method_d".split():
> @abstractmethod
> def inner(self):
> raise NotImplementedError
> inner.__name__ = name
> # This is okay, writing to locals works inside the class body.
> locals()[name] = inner
>
> del inner, name # Clean up the class namespace.
You have a peculiar idea of "good style"...
> although to be honest I'm not sure if that would be enough to stop PyLint
> from complaining.
No - if you think about it, there's no way Pylint could possibly know
that the above class has methods method_a, method_b, etc. It also
doesn't like the `del inner, name` because theoretically neither of
those names might be defined, if the loop executed zero times.
More information about the Python-list
mailing list