Comment on Python Performance: Why 'if not list' is 2x Faster Than Using len()
sugar_in_your_tea@sh.itjust.works 5 days agoThat’s terrible, and I would block that PR in a heartbeat, unless there was a very good reason for it (given context). I would instead prefer:
if foo is None: ...
Exceptions are useful for bubbling up errors, they’re a massive code smell if you’re catching something thrown by local logic. Just like you shouldn’t catch IndexError
right after indexing a list, you shouldn’t catch TypeError
right after checking the length. If you need to check parameters, check them at the start of your function and return early.
gigachad@sh.itjust.works 5 days ago
Sir, I will make sure to never bother you with a PR and my terrible, terrible code ;)
sugar_in_your_tea@sh.itjust.works 5 days ago
Rejecting a PR shouldn’t be offensive, it should be a learning opportunity, both for the reviewer and the submitter. If I reject it, I’ll give a clear reason why, and suggestions on how to fix it.
So please bother me with terrible, terrible code. I want to take time out of my day to help contributors learn, and I like pointing out areas where I learn something as well (like, “hey, this is really clever and also really easy to read, good job!”). I’m not always right, but I do have a lot of experience that I think others could benefit from. I know I was deeply appreciative of constructive criticism as a new dev, and I hope that’s true for the people I provide reviews for.