[python][原创]python函数怎么对int或者bool进行引用传递

[python][原创]python函数怎么对int或者bool进行引用传递,第1张

先看下面代码:

import time
import threading


def func(a):
    index=1
    while a:
        print('loop' + str(index))
        index += 1
        time.sleep(1)

a = True
threading.Thread(target=func, args=(a,)).start()
time.sleep(3)
a = False

上面代码你会发现循环停止不下来, 因为a是值传递。
解决方法:

import time
import threading


def func(a):
    index = 1
    while a[0]:
        print('===' + str(id(a)))
        print('loop' + str(index))
        index += 1
        time.sleep(1)


a = [True]
print('before=' + str(id(a)))
threading.Thread(target=func, args=(a,)).start()
time.sleep(3)
a[0] = False
print('after=' + str(id(a)))

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/905416.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-15
下一篇2022-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存