尝试运行线程时出现NameError

时间:2020-11-06 08:48:55

标签: python multithreading

我想使用线程以便在运行不同函数的同时true循环不断运行,但是问题是我每次尝试线程时都会收到NameError

这是代码:

import threading

wallet = 0

t1 = threading.Thread(target=lemon_mon)
t2 = threading.Thread(target=melon_mon)
t1.start()
t2.start()
def lemon_mon():
    global wallet
    while True:
        wallet += 1
        print(wallet)
def melon_mon():
    while True:
        wallet += 1
        print(wallet)

这是我得到的错误:

line 8, in <module>
t1 = threading.Thread(target=lemon_mon) NameError: name 'lemon_mon' is not defined

2 个答案:

答案 0 :(得分:0)

您应该在线程对象上方定义函数。同样,在您的melon_mon()函数中,我认为您也应该为全局调用钱包

答案 1 :(得分:-1)

您应该在使用函数之前定义函数,因此代码将为:

import threading

wallet = 0
def lemon_mon():
    global wallet
    while True:
        wallet += 1
        print(wallet)

def melon_mon():
    global wallet
    while True:
        wallet += 1
        print(wallet)

t1 = threading.Thread(target=lemon_mon)
t2 = threading.Thread(target=melon_mon)
t1.start()
t2.start()

此外,您应该阅读有关Python线程的更多信息。

相关问题