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: ")
     return number

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:

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

     return(number)

print(Interface())

or use global just like this:

def Interface():
     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"