python中的全局变量(矩阵)

时间:2018-02-13 09:42:26

标签: python numpy

我正在尝试使用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不能全局使用?

enter image description here

2 个答案:

答案 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.