首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python不断更新线程中的全局变量。

python不断更新线程中的全局变量。
EN

Stack Overflow用户
提问于 2022-05-17 17:17:11
回答 1查看 178关注 0票数 0

我正在使用这个库来处理一个PN5180射频识别阅读器:

https://github.com/fservida/pyPN5180

对于我所理解的,包含一个名为inventory()的函数,它返回多达16张检测到的卡片的列表。您将其放入一个循环中,以便使其更新。

我希望能够在不同时间测试列表中有多少张卡片,并返回一些in。

因此,我尝试将循环函数放入线程中,但我不知道如何将其作为全局变量进行更新,以便在主程序中进行测试。

代码语言:javascript
复制
def ListeningCards():

    print("listening to card thread started")
    while True:
        global cards    
        cards = PN5180().inventory()
        cardcount = len(cards)

th1 = threading.Thread(target = ListeningCards)

th1.start()


#main progam:

while true
#etc

那么,我怎样才能不断地监听rfid芯片并在我的主程序中返回它呢?我试过多线程,但也许还有其他方法?

EN

回答 1

Stack Overflow用户

发布于 2022-05-17 17:29:00

cards在第一次运行ListeningCards循环之前是未定义的。程序可能需要几毫秒才能开始运行。如果您的主程序在cards第一次有机会设置它之前访问ListeningCards,那么您将得到一个未定义的变量。

您可能只想将cards = 0设置在程序的顶部,或者类似的东西,这样它就有了一个默认值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72278216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档