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...