Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
What is the difference.
#4
(Apr-11-2018, 05:32 AM)jarrod0987 Wrote: So you can change it, but if you do, you change the scope?

Well, that's not correct statement.

1. you can use global keyword. In this case you can change its value, you don't change the scope.

message="Message outside function"
print('value before function: {}'.format(message))
def foo():
    global message # THIS IS BAD STYLE
    message = "Message in function"
    print('value from function: {}'.format(message))
foo()
print('value after function: {}'.format(message))
Output:
value before function: Message outside function value from function: Message in function value after function: Message in function
2. as in your case, not using global, by assigning a value within the function, you effectively create different variable, with different (local) scope. So you don't change the value of the other variable named MESSAGE (one with the global scope).

message="Message outside function"
print('value before function: {}'.format(message))
def foo():
    message = "Message in function"
    print('value from function: {}'.format(message))
foo()
print('value after function: {}'.format(message))
Output:
value before function: Message outside function value from function: Message in function value after function: Message outside function
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Messages In This Thread
What is the difference. - by jarrod0987 - Apr-11-2018, 04:44 AM
RE: What is the difference. - by buran - Apr-11-2018, 05:26 AM
RE: What is the difference. - by jarrod0987 - Apr-11-2018, 05:32 AM
RE: What is the difference. - by buran - Apr-11-2018, 06:22 AM
RE: What is the difference. - by jarrod0987 - Apr-11-2018, 06:54 AM

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020