由于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,對性能無影響