Python- Variable Scope
1 2 3 4 5  | def Interface(): Number = input("Enter number:") Interface() print(Number)  | 
这是我的代码的一个小的简化片段,它产生:
1 2 3 4  | Traceback (most recent call last): File"C:/Users/Jack/Documents/Python/NumberToText.py", line 78, in print(Number) NameError: name 'Number' is not defined  | 
这是因为变量是在函数中定义的。
我能做些什么来解决这个问题?
这取决于你想做什么。
可能使
1 2 3 4 5  | def interface(): number = input("Enter number:") return number print(interface())  | 
关于python中的作用域规则的主题,请参见此so qa。
注意:如您所见,我已经按照PEP-8指南将函数名和变量名转换为小写。
因为变量
1 2 3 4 5 6 7  | def Interface(): number = int(input("Enter number:")) # remember use int() function if you wish user enter a number return(number) print(Interface())  | 
或者像这样使用
1 2 3 4 5 6 7  | def Interface(): global number number = input("Enter number:") # remember use int() function if you wish user enter a number Interface() print(number)  | 
只有在需要时才使用
这是关于什么是全局变量的文档。