Python-可变范围

时间:2015-10-01 08:20:43

标签: python python-3.x

def Interface():
     Number = input("Enter number: ")

Interface()
print(Number)

这是我的代码的一个小简化片段,它产生:

Traceback (most recent call last):
  File "C:/Users/Jack/Documents/Python/NumberToText.py", line 78, in 
    print(Number)
NameError: name 'Number' is not defined

我认为这是因为变量是在函数中定义的。

我该怎么做才能解决这个问题?

2 个答案:

答案 0 :(得分:5)

这取决于你想做什么。

可能使Interface函数返回Number是最简单的解决方案

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

print(interface())

请参阅this SO QA有关python

中范围规则的主题

注意:正如您所看到的,我已按照PEP-8指南

将函数名称和变量转换为小写

答案 1 :(得分:1)

因为变量Number仅属于函数Interface()。您可以像这样使用return

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

     return(number)

print(Interface())

或使用global就像这样:

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

Interface()
print(number)

只有在需要变量时才使用global可以在任何地方使用,或者你需要函数返回其他东西。因为修改全局变量会破坏模块性。

Here是关于什么是全局变量的文档。