
1 DonaidTrump 2022-08-27 13:59:38 +08:00 via iPhone 去看 c 源码 |
2 westoy 2022-08-27 14:02:42 +08:00 |
3 zhuzhuaini OP @tulongtou @westoy 为啥是 C 源码,而且我装完 python 之后 电脑中也没有一个名字叫 binascii.c 或者binascii.cpp 这样的文件呀 难道 python 底层是去执行 C 语言了 而且这个 C 的源代码文件名还与 python 的包名不一样 比如 python 中包名叫 binascii.py 但是他对应的 C 可能叫 abc.c? 那去哪里可以找到这种对应关系呢 |
4 xiri 2022-08-27 14:42:22 +08:00 via Android @zhuzhuaini cpython 解释器就是用 c 写的啊,一些标准库也用 c 来实现加快运行速度不是很正常嘛。 另外这些 c 源码并不是你运行的时候才去编译的,你安装的 python 里面就都是已经编译好了的链接库,所以找不到对应的.c 文件 |
5 zhuzhuaini OP @xiri 明白了 感谢回复!!谢谢解答 |
6 julyclyde 2022-08-29 13:32:34 +08:00 @zhuzhuaini 为什么用“难道”来问去执行 C 语言了这个事呢? |
7 zhuzhuaini OP @julyclyde 因为我起先不知道 python 最后会转成 C...我以为和 C java 啥的一样呢 |
8 julyclyde 2022-08-30 10:40:58 +08:00 @zhuzhuaini 可以参考一下文档 https://docs.python.org/3/faq/general.html How do I obtain a copy of the Python source? 这一段 不过标准库里面 C 语言那部分,和 python 那部分,确实不太一样。用 python 语言写的那些库,和使用者自己写的程序一样都是编译成 bytecode 然后被语言虚拟机执行的,和 JVM 类似 |
9 zhuzhuaini OP @julyclyde 嗯嗯 在看了~感谢解答 |
10 ipwx 2022-09-30 17:20:26 +08:00 @zhuzhuaini "因为我起先不知道 python 最后会转成 C" 这句话不对。Python 代码是由 Python 解释器运行的,是一个 C 语言写的虚拟机,模拟了某种指令集的 “CPU”。但是这种执行方式注定了 Python 大部分代码不够快,所谓 Python 也支持调用编译好的本机函数。标准库的很多函数都是用 C 写的预先编译好的函数。 |