我有一个程序(如下),其中定义了一个名为
function
的函数。
我知道如果你想在函数外部访问它们,你可以通过将它们定义为全局变量来访问函数内部定义的变量。
所以,我在函数内部定义了一个全局变量。 然后我尝试访问它。
def function(x):
global num_of_clust, clust_index
clust_index = np.array([1,2,4])
num_of_clust = len(clust_index)
return x**2
if num_of_clust >= 1:
print(2)
但是,就我而言,这似乎不起作用。
我不断收到一条错误,指出
num_of_clust
未定义,它显然位于函数内部并被定义为全局变量。
NameError Traceback (most recent call last)
<ipython-input-5-f629dd1943ba> in <module>
7 return x**2
8
----> 9 if num_of_clust >= 1:
10
11 print(2)
NameError: name 'num_of_clust' is not defined
我有另一个程序也有同样的问题,但它更复杂,所以我编写了这个测试代码来解决这个问题。
有人对为什么会出现这种情况有任何见解或建议吗?
在您的情况下,
num_of_clust
是在函数内定义的。但该函数从未被调用过。
因此,您必须首先调用它,或者在函数外部定义
num_of_clust
。
在此代码中,您可以在检查 if 条件之前调用函数,然后它将起作用,或者您可以在函数外部定义变量。