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) |
只有在需要时才使用
这是关于什么是全局变量的文档。