全局名称在python中不起作用
我正在编写一个程序,在这个程序中,我使用诅咒创建一个用户界面,我通过一个不同的命令获得了终端的宽度和高度,我想使这两个变量成为全局变量,这样我就可以在整个程序中引用它们,而不必每次都通过参数传递它们(除非我应该这样做?)以下是我的一系列通话的简单布局:全局名称在python中不起作用,python,python-2.7,global-variables,curses,Python,Python 2.7,Global Variables,Curses,我正在编写一个程序,在这个程序中,我使用诅咒创建一个用户界面,我通过一个不同的命令获得了终端的宽度和高度,我想使这两个变量成为全局变量,这样我就可以在整个程序中引用它们,而不必每次都通过参数传递它们(除非我应该这样做?)以下是我的一系列通话的简单布局: def three(): print width, height def two(): three() def one(): two() global width global height width, heig
def three():
print width, height
def two():
three()
def one():
two()
global width
global height
width, height = console.getTerminalSize()
one()
因此,我得到了全局名称未定义错误,但不确定为什么,因为我首先将它们定义为全局,然后调用了一系列函数,我哪里出错了?您不需要在主代码中定义
全局
;默认情况下,在那里声明的任何变量都是全局变量。您需要在调用它们的函数中放置全局宽度
和全局高度
。这告诉Python使用变量的全局版本,而不是使用该名称创建本地版本(这是默认行为)
但要回答您的另一个问题:使用globals通常是不可取的,最好在可能的情况下传入参数。风险较小