You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python判断全局变量时提示builtin_function_or_method不可迭代错误

错误原因

globals是Python的内置函数,不是存储全局变量映射关系的字典对象。你写判断条件时没有加括号调用该函数,此时globals指向的是未执行的函数本身,属于builtin_function_or_method类型,不支持成员关系迭代判断,因此执行'STATUS' not in globals时会触发对应的类型报错。

修复方法

给globals加上括号完成调用,globals()执行后会返回包含当前作用域所有全局变量键值对的字典,再对这个返回的字典做成员判断即可符合预期。
修正后的判断语句写法:

if 'STATUS' not in globals():

替换原有判断行后,对应代码片段如下:

def add_users():
    global users
    users = []
    while True:
        if 'STATUS' not in globals():
            server.listen()
            client, client_addr = server.accept()
            print(colored(f'[+] {client_addr} Client connected to the server', 'yellow'))
            users.append([client, client_addr])

内容的提问来源于stack exchange,提问作者Mouad Essalim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 00:15:54