At 12:20 PM 3/26/2009 -0700, Guido van Rossum wrote: >By brittle I meant again having to be aware of those details of the >mechanism that exist because of syntactic limitations, e.g. >accidentally writing "return X" instead of "yield Return(X)". In that case, you'd either have a syntax error under the current rules (because you're using yield in the same function), or else you'd have a normal function (no yields) that worked in the way you expect it to. IIRC, the example I gave would treat a non-Return(), non-generator value as a value to be passed back into the current generator, such that if you defined a function f, and did: g = yield f() and f was not a generator or did not return one, then the above is equivalent to: g = f() and is not an error. Granted, this can fail if f() can return some other sort of iterator, but arguably that's an error in the *caller*, which should not use yield to call such a function -- and the need to distinguish the type of function you're calling is still present in PEP 380, i.e., you still need to know whether the function you're calling is a generator with a special return mechanism.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4