python 全局变量的疑问

C墨羽 2024-12-04 10:57:28
paidui_ally = []
paidui_enemy = []
is_ally_paidui = 0
is_enemy_paidui = 0

def paidui_set(faction):
    global is_ally_paidui
    global is_enemy_paidui

    if faction == "ally":
        global is_ally_paidui
        is_ally_paidui = 1
        print("paidui set: ", is_ally_paidui)
    elif faction == "enemy":
        global is_enemy_paidui
        is_enemy_paidui = 1
        print("paidui set: ", is_enemy_paidui)

def catchchat(faction):
    global paidui_ally
    global paidui_enemy
    global is_ally_paidui
    global is_enemy_paidui

    print("chat translation:", faction, is_ally_paidui, is_enemy_paidui, len(paidui_enemy))
    if faction == "ally" and is_ally_paidui == 1:
        paidui(faction, 1, 1)
    elif faction == "enemy" and is_enemy_paidui == 1:
        paidui(faction, 1, 1)
    elif faction == "ally" and len(paidui_ally) == 0:
        spawn_mob(faction, 1, 1)
    elif faction == "enemy" and len(paidui_enemy) == 0:
        spawn_mob(faction, 1, 1)

我定义了4个全局变量,通过paidui_set方法更改全局变量中的是否排队变量is_ally_paidui和is_enemy_paidui,当我执行过paidui_set方法之后,catchchat方法获取到的全局变量却是没有改变的全局变量!?有大佬知道为什么这个全局变量没有被改变吗??
注:(catchchat方法是在一个线程中调用的)
 

self.ws_connect = websocket.create_connection(wss_url, header=headers)
self.read_thread = threading.Thread(target=self.read)
self.read_thread.start()

def read(self):
    while True:
        self.parse_message(msg)
        ...
def parse_message(self, msg):
    ...
    self.parse_chat_msg(msg.payload)
    ...
def parse_char_msg(self, msg_payload):
    from ch2 import catchchat
    catchchat("ally")
    ...

 

...全文
132 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
C墨羽 2024-12-18
  • 打赏
  • 举报
回复

方法中的global只会跟着方法所在域走
https://blog.csdn.net/C_W_Q66/article/details/144556304

12,059

社区成员

发帖
与我相关
我的任务
社区描述
创建由Python学习者和社区专家组成的国内最大的第三方Python中文社区,帮助社区成员更好地入门学习、职业成长和应用实践
python学习 企业社区
社区管理员
  • Python全栈技术社区
  • Lumos_zbj
  • 北侠大卫
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

创建由Python学习者和社区专家组成的国内最大的第三方Python中文社区,帮助社区成员更好地入门学习、职业成长和应用实践

  • 这里有最新最全的 Python 学习内容及资源,每月多达4次技术公开课
  • 这里有众多 Python 学习者,陪伴你一起交流成长
  • 这里有专业 Python 社区专家、讲师,帮助你跨越学习瓶颈,解决实操难题
  • 这里有丰富的社区活动,可以开阔眼界,结识更多同伴

【最新活动】:

  1. 周四技术公开课讲师招募中,点击查看详情
  2. “Python 社区专家团” 招募中,点击查看详情

 

试试用AI创作助手写篇文章吧