DEV Community

Discussion on: What language features/concepts do insiders of the language love and outsiders hate?

Collapse
 
stoicperlman profile image
Sam Kleiner • • Edited

Python variable scope inside an if statement.

if True:
    var = “something”
print(var)

This runs just fine. No need to declare outside of if block. Complete opposite of the verbosity of Java.

Collapse
 
evanoman profile image
Evan Oman •

But var doesn't exist on line 3!! I know different rules for different languages, but allowing this would drive me crazy (esp. if you are just saving an explicit var = null statement)

Collapse
 
idanarye profile image
Idan Arye •

Then you'll love this:

with open('foo.txt', 'w') as f:
    f.write('hello world\n')
f.write('also hello world\n')  # f is closed by still in scope!

Thing is, with dynamic languages this doesn't really matter - it's not like if it had stricter scoping rules it'd fail to compile...