Because that’s prone to errors. And the Zen of Python includes “explicit is better than implicit” and “Errors should never pass silently”. Languages that do otherwise create bad habits.
I’m an embedded systems C programmer with passing familiarity with Python. To me it seems ridiculous that a language relies on whitespace for blocking. Is that true?
It only requires consistent indentation inside blocks, which is what any good code does anyway for readability. So the main difference then is just that you no longer need the redundant curly braces.
Python, and I like that I know it
I had to use Python for a bit at work and it was confusing
pipenv, venv, virtualenv, poetry…wtf is all this shit
a.b
vsa['b']
vsa.get('b')
…wtf is a KeyErrordeleted by creator
People love to complain about
npm
andnode_modules
, but I think they were on to something with the simplicity of it.What happens in other languages you use when you try to access a non-existing key for a hash/map/dict?
What language do you use that accessing an object attribute is the same that accessing a dict key?
What knowledge do you have (or not) that KeyError is a mistery to you?
Javascript / Typescript.
Well, yeah, I thought about later. Lua does the same.
The other questions are still valid, though.
Return undefined.
Typescript.
Why error? Just return undefined. Simple, no try/catch needed.
Because that’s prone to errors. And the Zen of Python includes “explicit is better than implicit” and “Errors should never pass silently”. Languages that do otherwise create bad habits.
Is it? It’s just an optional property. And Typescript will tell you that it’s optional.
I’m an embedded systems C programmer with passing familiarity with Python. To me it seems ridiculous that a language relies on whitespace for blocking. Is that true?
It only requires consistent indentation inside blocks, which is what any good code does anyway for readability. So the main difference then is just that you no longer need the redundant curly braces.
Yes, unfortunately. There is a lot of tooling around it but it still feels bizarre after years of using it.
I’m anal about curly braces in C. I never code without them because I don’t like being ambiguous.
I never do
if(i=0) return 0;
or worse
if(i=0) return 0;
I do
if(i=0) { return(0); }