Hacker News new | past | comments | ask | show | jobs | submit login
Hidden features of Python - Stack Overflow (stackoverflow.com)
83 points by dpatru on Jan 23, 2011 | hide | past | favorite | 15 comments



Dupe of:

- http://news.ycombinator.com/item?id=1512930

- http://news.ycombinator.com/item?id=594210

I don't mind being reminded to see if there's anything new, though.


I've seen it here before, but yesterday I happened to stumble across it again, learned something new, and figured maybe other people on HN would benefit from it too.


Hidden features in a programming language? Granted, most of these aren't "hidden", but they're nonobvious because the language is incredibly complex and it's difficult to predict from first principles that any of these things would actually work.

Long ago, a rule of programming language design was handed down by the great old hackers, but it has been forgotten and much needless effort has been spent as a result. It's time to remind language designers of the rule again:

"Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary."


Some of those features are just some fancy libraries, or syntactic sugar that you can ignore, if you want to. They don't make the language itself more complicated.


Can you go into specifics about how any of these examples are non-obvious because the language is incredibly complex?

In the context of higher level and or dynamic languages, I'd argue that Python is rather low on the complexity scale


Yes, and some of those `hidden features' are just nice library functions that avoid adding features to the core language. Look at `enumerate' and `zip' for example, which allow Python to get away with one very simple for-loop.


I think Guido is well aware of that rule, and makes a conscious effort not to add unnecessary features to the language. Still, there's no way you can maintain any non-trivial piece of software for 20 years and not have a few unexpected "features" come up.


Obligatory XKCD: http://xkcd.com/353/


XKCD is never obligatory.

Seriously, why is anyone "obligated" to post a comic that mentions Python, but adds nothing of substance, and isn't even funny? (http://www.google.com/search?q=site%3Anews.ycombinator.com+%...)


Well, "import antigravity" is sure enough a hidden feature of python. Well hidden. So hidden that I couldn't find it in any version of the interpreter :)



Let's be fair. It was funny the first time I saw it.


Damning with faint, faint, faint praise.

ObPython: Learn Smalltalk too!


Why? That's easy: I made a deal with Randall Munrow and as a result I'm legally obligated to post links to XKCD comics all over the web!

Seriously though. I enjoy reading XKCD and the first thing I thought of when I read the title of the post was that comic. Sorry for offending your delicate sense of humor. ;)


(nbpoole, I think Reddit-like humour is wasted here on HackerNews.)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: