Hacker News new | past | comments | ask | show | jobs | submit login

The point is about inconsistency.

You can say "x = 1 if expr else 2", but you cannot say "x = 1 if expr". You do a two line

if expr:

    x = 1
You cannot say "x = 1 if expr else return".

[1] is a list with one item, 1.

{1} is a set with one item, 1.

(1) is a number, 1, with pointless parenthesis. Perhaps you mean (1,), a tuple containing only one value.

Or how about mutable default values in function paramters? That makes a lot of sense...

I don't need to keep offering examples. You can search the internet and find many places where people list the warts, inconsistencies, and misfeatures of Python.




> You can say "x = 1 if expr else 2", but you cannot say "x = 1 if expr". You do a two line

This one liner works:

    if expr: x = 1
> Or how about mutable default values in function paramters? That makes a lot of sense...

This can be helpful under certain circumstances (e.g. memoization) [1]. The linked article also points out that it can be useful for rebinding global names in optimized code.

[0] https://stackoverflow.com/a/1145781

[1] https://web.archive.org/web/20200221224620id_/http://effbot....


> if expr: x = 1

But PEP8 and now the all-too-popular Black formatter disallow this. I think it's fine.

The momoization/optimization point is exactly the opposite of what should be a default use case for a beginner friendly language. And I highly doubt this mutable default design was intentional for these purposes. They are footguns.


These are pointless nitpicks. Every language has things like this. In 4 years of using Python in anger I’ve never written a line of code that could be improved by the features you list.


> These are pointless nitpicks. Every language has things like this. In 4 years of using Python in anger I’ve never written a line of code that could be improved by the features you list.

This is exactly the kind of response one often hears from the Python community. Translated it means, "I'm ok with it this way, so who cares if it could be better?"




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

Search: