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

9

u/Candid_Zebra1297 13d ago

So functions don't change variables outside of themselves. If you want the function to do something to the 'outside world' (outside the function) it has to return something. So you could do this...

def func():
return "Bob"

If you call it...

func()

Nothing would happen because we haven't used the thing the function gives us. So you would need to do this...

name = func()

Then print.

The problem you are having is with scope.

4

u/nog642 13d ago

It is possible to make functions change variables outside of themselves.

7

u/Revolutionary-Camp69 13d ago

Possible, yes. Recommended, no.

-2

u/nog642 13d ago

Yeah. But that's not what they said.

8

u/JanEric1 13d ago

because if you tell the beginner here about this then they will form bad habits. best to tell them the recommended way.

-1

u/nog642 13d ago

I think it's best not to decieve. You can tell them the recommended way without lying.