Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
全局名称在python中不起作用_Python_Python 2.7_Global Variables_Curses - Fatal编程技术网

全局名称在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通常是不可取的,最好在可能的情况下传入参数。风险较小