News for hackers. Stuff that matters.
Re:I'm Switching to Python and Actually Liking It by MyOutfitIsVague on Wednesday July 16, 2025 @05:24PM (#44586942)
There's no block scope in Python. The smallest scope is function. Comprehension variables don't leak out, though, which causes some weird situations:

    >>> s = "abc"
    >>> [x:=y for y in s]
    ['a', 'b', 'c']
    
    >>> x
    'c'
    
    >>> y
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    NameError: name 'y' is not defined
Comprehensions have their own local scope for their local variables, but the walrus operator reaches up to the innermost "assignable" scope.

There are no comments on this comment yet.