Skip to content Skip to sidebar Skip to footer

Python- Variable Scope

def Interface(): Number = input('Enter number: ') Interface() print(Number) This is a small simplified snippet of my code which produces: Traceback (most recent call last):

Solution 1:

It depends on what you want to do.

Probably making the Interface function return Number would be the easiest solution

def interface():
     number = input("Enter number: ")
     returnnumber

print(interface())

Please see this SO QA on the topic of scope rules in python

Note: as you can see, I have converted the names of the function and the variable to lowercase, following the PEP-8 guideline

Solution 2:

Because variable Number only belongs function Interface(). You can use return like this:

defInterface():
     number = int(input("Enter number: "))
     # remember use int() function if you wish user enter a numberreturn(number)

print(Interface())

or use global just like this:

defInterface():
     global number
     number = input("Enter number: ")
     # remember use int() function if you wish user enter a number

Interface()
print(number)

And only use global when you need the variable can use at everywhere or you need the function return other things. Because modifying globals will breaks modularity.

Here is the document about what is global variable.

Post a Comment for "Python- Variable Scope"