Python 3.x 如何在不使用全局变量的情况下更改python3中正在运行的函数的变量

Python 3.x 如何在不使用全局变量的情况下更改python3中正在运行的函数的变量,python-3.x,Python 3.x,我正在尝试从另一个函数停止正在运行的函数。我知道你可以使用一个全局变量,但从阅读资料来看,我做了一个错误的做法,使变量成为全局变量(“常量”是可以的)。在任何情况下,有没有办法更改正在运行的函数中变量的值 任何帮助都将不胜感激 from time import sleep def spin(stop): while not stop: # do something stop = control() i

我正在尝试从另一个函数停止正在运行的函数。我知道你可以使用一个全局变量,但从阅读资料来看,我做了一个错误的做法,使变量成为全局变量(“常量”是可以的)。在任何情况下,有没有办法更改正在运行的函数中变量的值

任何帮助都将不胜感激

from time import sleep

def spin(stop):
    while not stop:

        # do something
        
        stop = control()
        
        if stop:
            break

def control():
    start = spin(stop=False)

    sleep(5)

    start.stop = True   # This is where I want to send a stop signal


control() 

目前,您的代码根本无法实现您所希望的功能。您将开始执行
spin()。请阅读Python中的多线程技术,尽管我怀疑有一种不同的方法来完成您正在尝试的任务。我会检查一下。我还将对代码进行编辑,以进一步证明我的意图。谢谢你的编辑没有改变Philip说的任何内容。我怀疑您误解了调用函数的含义。@user2357112supportsMonica我已经做了最后的编辑。但毫无疑问,我正在努力获得一个完整的理解。了解这将如何工作将是一个重要的组成部分。提前感谢您的帮助。