On 5/24/21 8:17 AM, hw wrote: > What does python actually do in the first example? Does it overshadow a > variable or does it change one? If it overshadows a variable, it would > be dubious, if it doesn't, it won't be dubious.
Are you referring to this? num = input("Enter a number: ") num = int(num) No it is not "overshadowing" a variable. You cannot get back to the original string value for num. > There are more alternatives: Python might create a new variable with > the same name and forget about the old one. Or it doesn't forget about > the old one and the old one becomes inaccessible (unless you have a > reference to it, if there is such a thing in python). How do you call that? Python variables are not memory boxes like in a compiled language. They are names bound to objects, as Mr Simpson alluded to. So in the first line, the name num is bound to a string. In the second line, the name is re-bound to an int object. Furthermore, if num had come from the global name scope, either of these lines would create a local name num that does shadow the name from the global scope. Hope that helps. -- https://mail.python.org/mailman/listinfo/python-list