Python关闭子子进程

时间:2013-07-19 23:25:11

标签: python windows web-services file web-applications

我有一个关于在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按钮触发。

感谢。

1 个答案:

答案 0 :(得分:2)

您需要使用全局,否则它将使用局部变量。

def open_storage():
    global my_process
    my_process = subprocess.Popen("waffles.exe")