searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

python3中文编程

2023-04-26 06:24:45
7
0

由于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,对性能无影响

0条评论
0 / 1000
s****n
8文章数
0粉丝数
s****n
8 文章 | 0 粉丝
原创

python3中文编程

2023-04-26 06:24:45
7
0

由于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,对性能无影响

文章来自个人专栏
python性能优化
7 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0