Pythonic isn’t just idiomatic Python — it’s tasteful Python. It’s less an objective property of code, more a compliment bestowed onto especially nice Python code. The reason Pythonistas have their own word for this is because Python is a language that encourages good taste; Python programmers with poor taste tend to write un-Pythonic code.
This is highly subjective, but can be easily understood by Pythonistas who have been with the language for awhile.
Here’s some un-Pythonic code:
def xform(item): data = {} data["title"] = item["title"].encode("utf-8", "ignore") data["summary"] = item["summary"].encode("utf-8", "ignore") return data |
This code is both un-Pythonic and unidiomatic. There’s some code duplication which can very easily be factored out. The programmer hasn’t used concise, readability-enhancing facilities that are available to him by the language. Even lazy programmers will recognize this code’s clear downsides.