On Thu, Nov 30, 2017, at 17:26, Greg Ewing wrote: > Eric Fahlgren wrote: > > I think you're missing something here, since it seems clear to me that > > indeed the arguments are evaluated prior to the function call. > > I think the OP may be confusing "evaluating the function" with > "calling the function". > > If the function being called is determined by some computation, > that computation may be performed before its arguments are > evaluated (and is probably required to be, by the "left to > right" rule). But the arguments will always be evaluated > before the actual call happens.
Right, but if the function is evaluated before either of those things happen, then it can indeed short-circuit the argument evaluation. The OP isn't confusing anything; it's Eric who is confused. The quoted paragraph of the PEP clearly and unambiguously claims that the sequence is "arguments -> function -> call", meaning that something happens after the "function" stage [i.e. a None check] cannot short-circuit the "arguments" stage. But in fact the sequence is "function -> arguments -> call". _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com