In code, list.clear doesn't throw error - it's just ignored
Chris Angelico
rosuav at gmail.com
Mon Nov 14 02:08:38 EST 2022
On Mon, 14 Nov 2022 at 18:00, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
>
> On 14/11/22 3:13 pm, MRAB wrote:
> > But if it's an expression where it's expecting a statement and it's not
> > a call, then it's probably a bug.
>
> The key word there is "probably". If there's any chance it
> could be not a bug, it can't be an error. At most it should
> be a warning, and that's what linters are for. I wouldn't
> like the core interpreter to be producing a bunch of warnings
> for things like this.
>
Notably, linters can be taught about more complex idioms, like:
try:
raw_input
except NameError:
raw_input = input
which is an easy way to make polyglot Py2/Py3 code that handles the
presence/absence of a particular name. Or, similarly:
try:
os.sendfile
except AttributeError:
... # cope with sendfile not being available
When os.sendfile exists, it's a completely useless expression. When it
doesn't, it's an error. But the difference between those two is
crucial.
ChrisA
More information about the Python-list
mailing list