12,059
社区成员
发帖
与我相关
我的任务
分享
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")
...
方法中的global只会跟着方法所在域走
https://blog.csdn.net/C_W_Q66/article/details/144556304