dic 查看CPU运行指令
-
只要没有出现 STORE_GLOBAL,那么数据基本是安全的
-
import dis a=0 def func1(): global a a+=1 dis.dis(func1) ''' 0 LOAD_GLOBAL 0 (a) #在CPU中加载全局变量 2 LOAD_CONST 1 (1) #在CPU中加载常量 4 INPLACE_ADD #得到计算后的值 6 STORE_GLOBAL 0 (a) #对全局变量进行赋值(如果在此时进行了CPU切换,则会导致数据不安全) 8 LOAD_CONST 0 (None) #重新加载常量 10 RETURN_VALUE #返回值 '''
-
import dis a=[] def func1(): a.append(1) dis.dis(func1) ''' 0 LOAD_GLOBAL 0 (a) #在CPU中加载全局变量 2 LOAD_ATTR 1 (append) #在CPU中加载list属性 4 LOAD_CONST 1 (1) #在CPU中加载常量 6 CALL_FUNCTION 1 #执行属性 8 POP_TOP #退出,并将值返回列表 10 LOAD_CONST 0 (None) #在CPU中加载常量 12 RETURN_VALUE #返回值 '''