3 ms·
So it’s not specific to functions as arguments? A long-time gripe I’ve had about default parameters in Python is that they are static from function definition t
by eloisius 5y ago
So it’s not specific to functions as arguments? A long-time gripe I’ve had about default parameters in Python is that they are static from function definition time instead of dynamic at call time. A consequence of that is that if you have a function like
def foo(bar, baz=[]):
baz.append(bar)
return baz
baz will be reused for the duration of the process kind of like a global variable.
If this new syntax fixes that, I see the value.
- Sohcahtoa82 5y ago> If this new syntax fixes that, I see the value. It does. The old syntax creates and assigns the variable at compile-time. => does it at execution time. So this code: def foo(bar, baz=[]): baz.append(bar) return baz foo(1) foo(2) print(foo(3)) would print '[1, 2, 3]' But this code: def foo(bar, baz=>[]): baz.append(bar) return baz foo(1) foo(2) print(foo(3)) would print '[3]'