Re:Goto in Python
by aap_ on Monday September 21, 2015 @04:20AM
(#10251010)
Because goto can be useful?
[ Parent
| on HN ]
You are not a Python programmer for sure :)
Re:Goto in Python
by JupiterMoon on Monday September 21, 2015 @04:43AM
(#10251084)
In e.g. fortran there are labelled loops. So one can break out of an inner loop back to the main program flow. I know that this wouldn't be pythonic but sometimes I just want to finish the one off script and get back to something more fun and I miss this ability. I still don't think arbitrary gotos are great.
You can resolve this in basically every language by reworking your code in smaller pieces, and simply returning from a loop. Jumping left and right should only be signalling that you are Doing It Wrong (tm)
See the reply by Intermernet elsewhere in this discussion: https://news.ycombinator.com/item?id=10251397
Re:Goto in Python
by semi-extrinsic on Monday September 21, 2015 @02:36PM
(#10254243)
Can you do that without causing performance degradation e.g. through cache thrashing though? Fortran performance can vary significantly when you move stuff around.
Re:Goto in Python
by JupiterMoon on Monday September 21, 2015 @07:16AM
(#10251499)
I know this. As a said I would use this for one off scripts if it existed. (I'm not about to add a dependency to all my one off scripts though.)
I've seen exceptions masquerading as goto in the wild in multiple python codebases (and not because I added them). `raise HttpResponse(status=401, body="unauthorized")` inside some utility method is little more than goto exit in a lot of C code.
Using Exceptions this way in Python code is common practice and considered "Pythonic" and it's different than goto:
- an Exception only can bubble up the call stack, not to an arbitrary location in the code
- it can be caught whatever level during that path