怎么看写的python代码的功能模块的核心功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么看写的python代码的功能模块的核心功能相关的知识,希望对你有一定的参考价值。

参考技术A 我真正开始思考这个问题是当我开始思考将Python编译成WebAssembly都需要什么的时候。这并不是要实现另一个解释器,而是从Python源代码产生静态的WebAssembly,并且它依然可以称为“Python”
我知道的,通过eva()或compile()进行动态编译可能不容易实现,因为WebAssembly的安全模型会在加载时验证模块。这意味着没有办法在其他代码的内存空间内运行任意代码,这可能会加剧实现REPL的难度。
但这让我思考:Python真的需要REPL吗?别误会我的意思,它非常方便,但是我的意思是,如果某个实现不包含REPL,那么它还是Python吗?我认为无REPL的Python仍然是Python,只是缺少可能是关键的核心功能。
这不禁让我思考必须将Python的哪些部分视为“ Python”的想法。
没有locals()行不行?能够将定义的所有局部变量及其值都收集到一个字典中,这是非常动态的东西。如果你使用像CPython这种解释器,那么只需要从当前的执行帧里取一些东西就能获得locals。但在编译语言中,实现这一点需要大量工作,因为你必须知道应当何时收集这些信息,因为调用locals()的时候并不一定所有信息都存在。
如果有人重载了locals()怎么办?同样,在CPython中这也不是什么问题,因为builtins模块有一个__dict__属性,只需要重载它,就会向下传递到以后的调用中。但在编译语言中,做类似的检测需要大量的工作,最终会影响性能。
那么sys.settrace()呢?它会触发每个字节的回调,而如果代码已经编译,这一点是无法实现的。尽管你可以通过检查每行末尾是否设置了跟踪函数来模仿这一行为,但这似乎有点过了,因为绝大多数情况下这种钩子并不存在(尽管可以实现为编译器开关)。
那么sys._getframe()呢?编译语言并不一定能够直接访问每个执行帧,那么你还要不要模拟这一行为?由于任何函数都可以请求执行帧,你必须时刻准备着提供执行帧。
可见,Python中有很多东西加剧了编译的难度(因此Nuitka拥有更大的能力来应对这一挑战)。但是我敢打赌,上面提到的内容在99.9%的情况下都不会使用,因此,如果这些功能没有实现,那么是否仍可以将其视为“Python”?
具备多少兼容性才有意义?
这个问题我没有很好的答案。但是这个问题的答案标志着实现Python的难度以及与现有软件的兼容性。我会说,我认为WebAssembly不需要支持大量的Python软件。WebAssembly可以访问Rust和JavaScript等其他语言生态系统,因此你需要的某个东西完全有可能在其他语言中已经实现了。
我没有答案
也许我们可以开发一个将Python代码直接转换为WebAssembly并牺牲性能兼容性的编译器。也许我们可以开发针对WebAssembly设计的解释器,同时与先前已有的代码保持兼容性。也许可以仅在其WebAssembly工作中支持RustPython。也许Pyodide可以实现这一点。我认为这些都有可能,这些都有可能激发人们的兴趣,进而产生更好的结果。
参考技术B 答:
python查看模块功能
1.
首先确保python安装成功了,python的安装程序可以在百度里面进行搜索下载安装
2.
之后在开始按钮中,输入cmd,进入到黑色的控制台界面中
3.
之后在控制台中输入python,进入python控制台界面中
4.
导入相应的python模块,下面用math模块进行举例,输入import math
参考技术C 首先确保python安装成功了,python的安装程序可以在百度里面进行搜索下载安装
2.
之后在开始按钮中,输入cmd,进入到黑色的控制台界面中
3.
之后在控制台中输入python,进入python控制台界面中
4.
导入相应的python模块,下面用math模块进行举例,输入import math
参考技术D 1.
首先确保python安装成功了,python的安装程序可以在百度里面进行搜索下载安装
2.
之后在开始按钮中,输入cmd,进入到黑色的控制台界面中
3.
之后在控制台中输入python,进入python控制台界面中
4.
导入相应的python模块,下面用math模块进行举例,输入import math
第5个回答  2022-11-19 内置函数:在Python中直接输入dir(__builtins__)就能查看(__builtins__是一个模块,里面有且只有内置内容;dir是内置函数,能列出一个对象的全部属性)。

模块:在Python的安装目录中,打开Lib文件夹,里面有很多模块的源文件。但是不能查看内置模块

以上是关于怎么看写的python代码的功能模块的核心功能的主要内容,如果未能解决你的问题,请参考以下文章

python中怎么import自己写的模块

python核心知识

python核心知识

从功能上讲,Python的一个程序通常包括哪些组成部分?

PYTHON-DAY17-模块

python中如何调用自己写的函数