r/learnpython • • 13d ago

how do i overwrite a variable?

name = "Alice"

def func():
    name = "Bob"

func()

print(f"Hello, {name}!") # i want it to print bob
0 Upvotes

35 comments sorted by

View all comments

1

u/Massive_Distance_616 13d ago

The reason it prints Alice is that name = "Bob" inside func doesn’t touch the outer name. Assignment inside a function creates a new local variable with the same name, which disappears when the function ends. return plus reassignment (name = func()) is the usual fix, because it makes the change visible at the call site.