它有点像这样。它只是主代码的一个块。 x
,y
已正确定义
def Function_1 (x,y):
global zone
# there are some conditions which get the value of variable zone
return zone
def Function_2 (zone):
#then there are some conditions wherein i use variable zone
Function_2 (zone)
因此错误是第32行中的“未定义区域” 很抱歉问一个愚蠢的问题,但我是新的,我需要迫切需要帮助
答案 0 :(得分:0)
当Function_2
未被调用时,您正试图运行Function_1
。解决此问题的最简单方法是对Function_2
的结果运行Function_1
,如下所示:
def Function_1 (x,y):
global zone
#there are some conditions which get the value of variable zone
return zone
def Function_2 (zone):
#then there are some conditions wherein i use variable zone
Function_2(Function_1(1,2))
当您致电Function_1(1,2)
时,Function_1(1,2)
变得与该函数返回的内容相同,因此您只需将zone
的参数设置为Function_2
的参数{ {1}}。
另外,你说x和y是定义的。您无法设置变量的值并将其与函数一起使用,您需要将其传入。例如:
Function_1(1,2)
当你这样称呼时,你需要传递x=1
def Function (x):
return x
Function()
这项工作并不起作用:
x
这会将def Function (x):
return x
Function(1)
设置为x
您似乎对功能的运作方式了解不多,请尝试阅读this指南。
答案 1 :(得分:0)
这很正常!首先,您需要在使用之前分配变量。行global zone
允许python知道zone
变量存在,而不是在函数中创建局部变量。如果缺少单词global
,python会创建另一个具有相同名称但不同地址的变量(本地)。
zone = None
def Function_1 (x,y):
global zone
#there are some conditions which get the value of variable zone
return zone
def Function_2 (zone):
#then there are some conditions wherein i use variable zone
Function_2 (zone)
在查看代码时,我们看到名为Function_1的函数返回zone。
zone
作为全局变量?Function_1
。这样的事情:Function_2 (Function_1 (x,y))
。