gpt4 book ai didi

Python - 函数不是 'Global',因此无法在线程类中调用

转载 作者:行者123 更新时间:2023-11-30 21:50:32 26 4
gpt4 key购买 nike

所以,首先这是我的代码:

import threading

print "Press Escape to Quit"

class threadOne(threading.Thread): #I don't understand this or the next line
def run(self):
setup()

def setup():
print 'hello world - this is threadOne'


class threadTwo(threading.Thread):
def run(self):
print 'ran'

threadOne().start()
threadTwo().start()

所以,问题是在我的类“threadOne”中,run 函数运行(由线程模块调用),但从那里我无法调用任何其他函数。这包括我是否在 setup() 函数下创建更多函数。例如上面的例子,在我的 run(self) 函数中,我尝试调用 setup() 并得到“NameError:全局名称“setup”未定义”。

有人有什么想法或者可以向我解释一下吗?

山姆

最佳答案

setupThread 实例的一个方法。因此,您可以使用 self.setup() 而不是 setup() 来调用它。后者试图调用名为 setup 的全局函数,但该函数不存在。

由于 setup() 是一个实例方法,因此它也必须接受 self 作为其第一个参数。

关于Python - 函数不是 'Global',因此无法在线程类中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14486139/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com