我正在尝试使用numpy矩阵作为全局变量。但是,当我在其他脚本中引用下面的函数时,我只在变量表中得到“global_gABD = []”和“gABD = matrix([[1,6,6]])”(参见附图)。我的gABD未保存为全局变量。
def gABD():
global gABD
import numpy as np
gABD = np.matrix((1,6,6))
gABD()
有没有办法做到这一点,还是numpy.matrix不能全局使用?
答案 0 :(得分:1)
您当然可以使用全局变量。然而,这不是一个好习惯。您可能需要阅读Why are global variables evil?注意,您的变量和函数具有相同的名称,此将导致问题。
google()
更好的方法是从函数中返回变量,以便它可以在代码中的其他地方使用:
def gABD():
global mat
import numpy as np
mat = np.matrix((1,6,6))
gABD()
print (mat)
# [[1 6 6]]
答案 1 :(得分:0)
试试这个:
a = 25
b = 37
def foo():
global a # 'a' is in global namespace
a = 10
b = 0
foo()
# you should have now a = 10 and b= 37. If this simple example works, replace then a by your matrix.