如何在python中定义全局数组

Xia*_*iao 0 python arrays plot

如何在python中定义全局数组我想将tm和prs定义为全局数组,并在两个函数中使用它们,如何定义它们?

import numpy as np 
import matplotlib.pyplot as plt

tm = []  
prs = []

def drw_prs_tm(msg):
    tm = np.append(tm,t)
    prs = np.append(prs,s)

def print_end(msg):
    plt.plot(tm,prs,'k-')
Run Code Online (Sandbox Code Playgroud)

kar*_*ikr 7

您需要global <var_name>在方法中引用它们

def drw_prs_tm(msg):
    global tm
    global prs

    tm = np.append(tm,t)
    prs = np.append(prs,s)

def print_end(msg):
    global tm
    global prs
    plt.plot(tm,prs,'k-')
Run Code Online (Sandbox Code Playgroud)

global 这里这里阅读更多

全局语句是一个声明,适用于整个当前代码块。这意味着列出的标识符将被解释为全局变量。尽管自由变量可能在未声明为全局的情况下引用全局变量,但如果没有全局变量,则不可能分配给全局变量。

在Python中,仅在函数内部引用的变量是隐式全局的。如果在函数体内的任何位置为变量分配了新值,则假定该变量是局部变量。如果在函数内部为变量分配了新值,则该变量是隐式局部变量,您需要将其显式声明为“ global”。

  • 重要的是要添加新的值,如果您要为变量分配新值,则仅需要`global`前缀。如果只想读取该值,则可以使用其常规名称。 (2认同)