我有一个关于在python 3中编写的脚本中杀死子子进程的一个非常简单的问题。
其中,
如果我有,
my_process = None
def open_storage():
my_process = subprocess.Popen("waffles.exe")
def kill_children():
my_process.kill()
致电open_storage()
后,如果我拨打kill_children()
,我就会
AttributeError: 'NoneType' object has no attribute 'kill'
但如果我有,
my_process =无
my_process = subprocess.Popen("waffles.exe")
def kill_children():
my_process.kill()
一切正常。
任何人都可以解释这种奇怪的行为吗?我需要open_storage()
作为函数,因为它被设计为由tkinter按钮触发。
感谢。
答案 0 :(得分:2)
您需要使用全局,否则它将使用局部变量。
def open_storage():
global my_process
my_process = subprocess.Popen("waffles.exe")