Python 3.x 全局变量未正确定义[PYTHON 3]

Python 3.x 全局变量未正确定义[PYTHON 3],python-3.x,asynchronous,process,Python 3.x,Asynchronous,Process,获取错误信息: 文件“labpm3.py”,第37行,在child中 print("I'm child pid:", os.getpid(), "my next bro is:", nextS) NameError:未定义名称“nextS” 我想知道如何正确定义全局变量,提前感谢您的反馈 import os, time, sys, signal children = [] count = 0 def parent(nc, numiter): nextS = os.getppid(

获取错误信息: 文件“labpm3.py”,第37行,在child中

print("I'm child pid:", os.getpid(), "my next bro is:", nextS)
NameError:未定义名称“nextS”

我想知道如何正确定义全局变量,提前感谢您的反馈

import os, time, sys, signal

children = []

count = 0

def parent(nc, numiter):
    nextS = os.getppid()
    i = 0
    while i < nc:
        i+= 1
        newpid = os.fork()
        if newpid == 0:
            child(i)
        else: 
            nextS = newpid
            children.append(nextS)

    i = 0
    while i < numiter:
        os.kill(nextS, signal.SIGALRM)
        time.sleep(1)
        signal.signal(signal.SIGALRM, handler_parent)
        i+=1
    i = 0
    while i < nc:
        os.kill(children[i], signal.SIGUSR1)
        (pid, sts) = os.waitpid(children[i], 0)
        print(pid, os.WEXITSTATUS(sts))
        i+=1


def child(number):
    global nextS
    global count
    print("I'm child pid:", os.getpid(), "my next bro is:", nextS)
    signal.signal(signal.SIGALRM, handler) 
    signal.signal(signal.SIGUSR1, handler2)
    while True:
        time.sleep(10)


def handler(signum, frame):
    global nextS
    global count
    count += 1
    print("I'm child pid:", os.getpid(), "sending signal to:", nextS)
    os.kill(nextsibl, signal.SIGALRM)



def handler2(signum, frame):
    global nextS
    global count    
    sys.exit(count)

def handler_parent(signum, frame):
    global count
    global nextS



try:
    numchild = int(sys.argv[1])
    numiter = int(sys.argv[2])
except:
   print ('First parameter must be a number', sys.argv[1])
   print ('Second parameter must be a number', sys.argv[2])
导入操作系统、时间、系统、信号
儿童=[]
计数=0
def父级(nc、numiter):
nextS=os.getppid()
i=0
而我

父级(numchild,numiter)

首先,应该在方法之外定义变量。例如:

c = 0 # global variable

def add():
    global c
    c = c + 2 # increment by 2
    print("Inside add():", c)

add()
print("In main:", c)
输出:

Inside add(): 2
In main: 2
有关更多信息,请参阅