Python tutorial says that (https://docs.python.org/3/tutorial/classes.html#python-scopes-and-namespaces)
In fact, local variables are already determined statically.
How to understand this? Based on what I knew static means that the type of a variable is determined at compile time. But it is not true considering for example
x = 1
x = 'str'
where the variable x is dynamically bound to objects of type int or string at runtime.
Reference: Is Python strongly typed?
In addition to the other answer, consider the error produced by the following code.
x = 1
def function():
y = x + 1
x = 3
function()
This will produce an error like "UnboundLocalError: local variable 'x' referenced before assignment" because it is determined that x is a local variable in function so it should be found in the local scope, negating the global definition.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With