python如何处理内置函数?

问题描述 投票:1回答:1

print('Hello World')

首先编译上述代码时,字节代码是否包含print函数的源代码? Python解释器如何获取print的源代码?

python function bytecode
1个回答
2
投票

您可以使用dis模块来查看CPython如何处理内置函数。

$ cat tmp.py
print('Hello World')
$ python3 -m dis tmp.py
  1           0 LOAD_NAME                0 (print)
              2 LOAD_CONST               0 ('Hello World')
              4 CALL_FUNCTION            1
              6 POP_TOP
              8 LOAD_CONST               1 (None)
             10 RETURN_VALUE

函数的名称及其参数被加载到堆栈上,然后CALL_FUNCTION负责使用常规查找算法查找名称。对于print,名称存在于内置作用域中,并且查找的结果是Python实现提供的对象。

© www.soinside.com 2019 - 2024. All rights reserved.