由于python3默认使用unicode编码。所以天生支持中文变量,函数变量。例如:
te = 1
中文全局 = 1
def test():
global te
te = 2
a = 1
b = 2
c = a + b + te
def 测试():
global 中文全局
中文全局 = 2
是1 = 1
是2 = 2
是3 = 是1 + 是2 + 中文全局
使用dis模块查看字节码。如下
>>> import zz
>>> import dis
>>> dis.dis(zz)
Disassembly of test:
5 0 LOAD_CONST 1 (2)
2 STORE_GLOBAL 0 (te)
6 4 LOAD_CONST 2 (1)
6 STORE_FAST 0 (a)
7 8 LOAD_CONST 1 (2)
10 STORE_FAST 1 (b)
8 12 LOAD_FAST 0 (a)
14 LOAD_FAST 1 (b)
16 BINARY_ADD
18 LOAD_GLOBAL 0 (te)
20 BINARY_ADD
22 STORE_FAST 2 (c)
24 LOAD_CONST 0 (None)
26 RETURN_VALUE
Disassembly of 测试:
12 0 LOAD_CONST 1 (2)
2 STORE_GLOBAL 0 (中文全局)
13 4 LOAD_CONST 2 (1)
6 STORE_FAST 0 (是1)
14 8 LOAD_CONST 1 (2)
10 STORE_FAST 1 (是2)
15 12 LOAD_FAST 0 (是1)
14 LOAD_FAST 1 (是2)
16 BINARY_ADD
18 LOAD_GLOBAL 0 (中文全局)
20 BINARY_ADD
22 STORE_FAST 2 (是3)
24 LOAD_CONST 0 (None)
26 RETURN_VALUE
可见,python使用虚拟机来执行字节码,中文变量全部被重命名成了自增id,对性能无影响