[Python-ideas] warn/error when using a method as boolean in ifs/whiles
Paul Moore
p.f.moore at gmail.com
Tue Oct 11 09:02:59 EDT 2016
More information about the Python-ideas mailing list
Tue Oct 11 09:02:59 EDT 2016
- Previous message (by thread): [Python-ideas] warn/error when using a method as boolean in ifs/whiles
- Next message (by thread): [Python-ideas] warn/error when using a method as boolean in ifs/whiles
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 11 October 2016 at 13:41, Sven R. Kunze <srkunze at mail.de> wrote: > maybe they could benefit > from a patch where `if`-statements give a warning/error when the expression > is a callable (with the default `FunctionType.__bool__`? [...] > What do you think about that Python emitting an warning/error as described > above? Interesting idea. There may be some issues - consider an object that may optionally have a handler method handle_event, and you want to call that method if it exists: handler = getattr(obj, 'handle_event', None) if handler: # prepare arguments handler(args) That could would break (technically, it would produce an incorrect warning) with this change. I do think that the scenario you described is a valid one - and there's no obvious "better name". The stdlib module pathlib uses the same pattern "my_path.is_absolute()", and IIRC I've made the mistake you described (although I don't recall any major trauma, so the problem was probably fixed relatively quickly). I'm not sure: Pros: - Catches an annoying and potentially hard to spot bug Cons: - Would trigger on certain reasonable coding patterns that aren't an error - IMO, "false positives" in warnings are very annoying, particularly in Python where they are runtime rather than compile-time, and so affect the end user (if they aren't fixed in development) Paul
- Previous message (by thread): [Python-ideas] warn/error when using a method as boolean in ifs/whiles
- Next message (by thread): [Python-ideas] warn/error when using a method as boolean in ifs/whiles
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list