On Tue, Mar 6, 2018 at 1:52 AM, Kirill Balunov <kirillbalu...@gmail.com> wrote:
> > I propose to delete all references in the `filter` documentation that the > first argument can be `None`, with possible depreciation of `None` as the > the first argument - FutureWarning in Python 3.8+ and deleting this option > in Python 4. Personally, regarding the last point - depreciation, I do not > see this as a great necessity, but I do not find that the option with > `None` > should be offered and suggested through the documentation. Instead, it is > better to show an example with using `filter(bool, iterable)` which is > absolutely > equivalent, more readable, but a little bit slower. > > Currently documentation for `None` case uses `identity function is > assumed`, what is this `identity` and how it is consistent with > truthfulness? > > In addition, this change makes the perception of `map` and `filter` more > consistent,with the rule that first argument must be `callable`. > > I see only one moment with `None`, since `None` is a keyword, the behavior > of `filter(None, iterable)` is alsways guaranteed, but with `bool` it is > not. Nevertheless, we are all adults here. > I won't pretend I am qualified to debate the technical aspects here, but regarding this snippet: ... Instead, it is better to show an example with using `filter(bool, iterable)` which is absolutely equivalent, more readable ... as a ordinary Python user I'd be interested in improvements to the documentation, including suggestions on real-world usage. For example, Chris Angelico below says in part: ... that said, though, any use of filter() that involves a lambda function should probably become list comps or genexps, so filter itself should only be used when ... Kirill, taking deprecation/removal off the table, what changes would you recommend to the documentation? -- https://mail.python.org/mailman/listinfo/python-list