到底是什么是Python?语言的核心是什么?

文章目录

  • 前言
  • 一、为什么提出python编程的核心是什么?
  • 二、Python需要REPL?
  • 三、Python的哪些部分需要被视为“Python”?
  • 四、需要多少兼容性才能有用?
      • Python技术资源分享
        • 1、Python所有方向的学习路线
        • 2、学习软件
        • 3、精品书籍
        • 4、入门学习视频
        • 5、实战案例
        • 6、清华编程大佬出品《漫画看学Python》
        • 7、Python副业兼职与全职路线


前言

我想要Python实现,这已经不是什么秘密了。WebAssembly它不仅会让Python进入浏览器,而且事实是两者都是IOS和安卓支持将JavaScript作为应用程序的一部分运行,它还可以让Python进入移动平台。这一切都让我兴奋。

但是当想到创建Python的新实现这一艰巨任务时,我的大脑也开始问到底是什么东西。是Python?
在这里插入图片描述


一、为什么提出python编程的核心是什么?

我们一起生活过CPython长期以来,我怀疑我们大多数人只是认为“Python==CPython”。
试着做兼容他们将实现CPython的实现细节。基本上,据我所知,Python的大多数实现都力求通过CPython的测试套件,并尽可能与CPython兼容。

这太令人望而生畏了。由CPython实现的Python是非常动态的,并且暴露了许多只有在您使用解释器实现Python时才有意义的事情。
例如,PyPy有一个基线解释器,他们使用JIT,但是在Python中可以使用很多东西,这些东西迫使PyPy关闭JIT并继续使用字节码。
仅REPL本身就使事情变得非常动态,因为您输入到REPL中的所有内容都是由解释器动态解析、编译和执行的。

这让我思考了到底是什么是Python?语言的核心是什么?
所有Python实现都需要覆盖哪些基线,才能真正将自己称为Python的实现,而人们仍然会认识到这一点?
或者从我的角度来看,要将Python直接编译到WebAssembly并仍然被认为是Python实现,还需要实现多少呢?

二、Python需要REPL?

真正让我开始思考这个问题的是,当我开始思考如何将Python编译成WebAssembly时?
没有实现另一个解释器,但实际上从Python源发出静态WebAssembly,并且仍然合理地称之为“Python”。

我知道的一件事是通过动态编译eval()或compile()很难做到WebAssembly安全模型在加载时验证模块。
这意味着在其他代码的内存空间中不存在只运行任意代码的结构化结构,这可能会使REPL的实现变得很棘手。

但这让我想:Python真的需要REPL?不要误解我的意思,它非常方便,但是如果一个实现没有REPL,它会不会不再成Python?我认为没有REPL的Python仍然是Python,它只是缺少一个(可能的键)特性。

三、Python的哪些部分需要被视为“Python”?

你能活下去吗locals()?能够任意地将所有定义的局部变量及其值收集到字典中是一件非常动态的事情。如果您是在一个整数(如CPython)中,您只需从当前执行框架中收集一些内容,就可以得到局部变量。但是在编译语言中,这需要做更多的工作,因为您必须知道何时收集所有这些信息,因为不一定只是在调用时躺在那里。locals().
或者其他人locals()本身?再说一次,这在CPython中并不是什么大问题,因为builtins模块有一个__dict__您可以覆盖它,它将简单地传播到任何未来的调用。但是在一种编译语言中,做这种检测需要付出更多的努力,这样的检查最终要花费性能。

关于sys.settrace()?它实际上会触发每个字节码的回调,如果编译了代码,这就不太起作用了。您可以通过检查在每一行之后是否设置了跟踪函数来伪造它,但是当大多数时候没有设置这样的钩子时,这看起来就有点麻烦了(不过,在这种支持下编译可能是一个编译器标志)。

那你觉得呢?sys._getframe()?编译后的语言不一定会直接访问执行框架,所以您是否需要进行模拟呢?由于任何函数都可以请求执行框架,因此您需要随时准备按需提供执行帧。

正如您所看到的,Python中有很多东西使得编译变得困难(因此更强大到努特卡接受这个挑战)。但我敢打赌,我上面提到的东西–你不会在99.9%的时间里使用它们,所以如果一个实现忽略了它们,它还能被认为是“Python”吗?

四、需要多少兼容性才能有用?

我对这个问题没有很好的答案。但它的答案决定了实现Python有多困难,以及它与现有软件的兼容性。我要说的是,我认为WebAssembly不需要支持大量的Python软件才有用。WebAssembly可以访问其他语言生态系统,如Rust和JavaScript,因此您需要用另一种语言实现一些您可以使用的其他语言的可能性肯定在零以上。
我没有答案
开发一个直接将Python代码转换为WebAssembly并为性能牺牲一些兼容性的编译器可能是有意义的。开发一个针对WebAssembly设计但与已有代码保持大量兼容性的解释器可能是有意义的。简单地支持RustPython在他们的WebAssembly的努力中。也许吧皮笛会把我们带到那里。我不认为任何这些可能性本质上都是错误的,它很可能会归结到任何一个足以激发人们的兴趣,看到它对他人有用的程度。


【最新Python全套从入门到精通学习资源,文末免费领取!】

Python技术资源分享

如果你对Python感兴趣,学好 Python 不论是就业、副业赚钱、还是提升学习、工作效率,都是非常不错的选择,但要有一个系统的学习规划。

小编是一名Python开发工程师,自己整理了一套 【最新的Python系统学习教程】,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。

如果你是准备学习Python或者正在学习,下面这些你应该能用得上:

1、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

2、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

在这里插入图片描述

3、精品书籍

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

在这里插入图片描述

4、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

img

5、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

6、清华编程大佬出品《漫画看学Python》

用通俗易懂的漫画,来教你学习Python,让你更容易记住,并且不会枯燥乏味。

在这里插入图片描述

7、Python副业兼职与全职路线

在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

👉CSDN大礼包:《Python入门资料&实战源码&安装工具】免费领取安全链接,放心点击

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/188215.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL表、字段、查询参数获取

SQL工具类表、字段、查询参数提取 1. 执行效果2. 使用2.1 引入依赖2.2 相关实体2.3 工具类 1. 执行效果 2. 使用 2.1 引入依赖 <!-- sql 解析处理--><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifact…

【教3妹学编程-算法题】2923. 找到冠军 I

3妹&#xff1a;2哥2哥&#xff0c;你看到新闻了吗&#xff1f;襄阳健桥医院院长 公然“贩卖出生证明”&#xff0c; 真是太胆大包天了吧。 2哥 : 我也看到新闻了&#xff0c;7人被采取刑事强制措施。 就应该好好查查他们&#xff0c; 一查到底&#xff01; 3妹&#xff1a;真的…

springboot定时服务

上一篇文章【修改定时时间&#xff0c;定时任务及时生效】 是定时任务与功能项目共用一个&#xff1b; 我目前所在公司的定时服务是专门有一个项目处理&#xff0c;然后定时查询库里面的定时信息配置。 话不多说&#xff0c;上程序 数据库设置 create table SCHEDULER_JOB…

语音识别与自然语言处理(NLP):技术前沿与未来趋势

语音识别与自然语言处理&#xff08;NLP&#xff09;&#xff1a;技术前沿与未来趋势 随着科技的快速发展&#xff0c;语音识别与自然语言处理&#xff08;NLP&#xff09;技术逐渐成为人工智能领域的研究热点。这两项技术的结合&#xff0c;使得机器能够更好地理解和处理人类语…

自主开发刷题应用网站H5源码(无需后端无需数据库)

该应用使用JSON作为题库的存储方式&#xff0c;层次清晰、结构简单易懂。 配套的word模板和模板到JSON转换工具可供使用&#xff0c;方便将题库从word格式转换为JSON格式。 四种刷题模式包括顺序刷题、乱序刷题、错题模式和背题模式&#xff0c;可以根据自己的需求选择适合的模…

arm2 day4

汇编编写流水灯 代码&#xff1a; LED流水灯现象&#xff1a;

浅谈高并发以及三大利器:缓存、限流和降级

引言 高并发背景 互联网行业迅速发展&#xff0c;用户量剧增&#xff0c;系统面临巨大的并发请求压力。 软件系统有三个追求&#xff1a;高性能、高并发、高可用&#xff0c;俗称三高。三者既有区别也有联系&#xff0c;门门道道很多&#xff0c;全面讨论需要三天三夜&#…

掌动智能性能压力测试优势有哪些

企业通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。本文将介绍性能压力测试的价值及主要优势! 一、性能压力测试的价值 1、评估系统能力&#xff1a;有助于参数的基准测试&#xff0c;可以度量系统的响应时间;还有助于检查系统是否可…

[工业自动化-12]:西门子S7-15xxx编程 - PLC从站 - ET200 SP系列详解

目录 一、概述 1.1 概述 二、系统组成 2.1 概述 2.2 与主站的通信接口模块 2.3 总线适配器 2.4 基座单元 2.5 电子模块 2.6 服务器模块 一、概述 1.1 概述 PLC ET200 SP 是西门子&#xff08;Siemens&#xff09;公司生产的一款模块化可编程逻辑控制器&#xff08;PL…

Linux输入与输出设备的管理

计算机系统中CPU 并不直接和设备打交道&#xff0c;它们中间有一个叫作设备控制器&#xff08;Device Control Unit&#xff09;的组件&#xff0c;例如硬盘有磁盘控制器、USB 有 USB 控制器、显示器有视频控制器等。这些控制器就像代理商一样&#xff0c;它们知道如何应对硬盘…

【MATLAB源码-第73期】基于matlab的OFDM-IM索引调制系统不同子载波数目误码率对比,对比OFDM系统。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM-IM索引调制技术是一种新型的无线通信技术&#xff0c;它将正交频分复用&#xff08;OFDM&#xff09;和索引调制&#xff08;IM&#xff09;相结合&#xff0c;以提高频谱效率和系统容量。OFDM-IM索引调制技术的基本思想…

嵌入式养成计划-52----ARM--开发板介绍--相关硬件基础内容介绍--GPIO讲解

一百三十一、开发板介绍 131.1 核心板介绍 131.2 拓展板 一百三十二、相关硬件基础内容介绍 132.1 PCB PCB&#xff08; Printed Circuit Board&#xff09;&#xff0c;中文名称为印制电路板&#xff0c;又称印刷线路板&#xff0c; 是重要的电子部件&#xff0c;是电子元器…

Direct3D粒子系统

粒子和点精灵 粒子(是种微小的物体,在数学上通常用点来表示其模型。所以显示粒子时,使用点图元(由 D3 DPRIMITIVETYPE类型的D3 DPT POINTLIST枚举常量表示)是一个很好的选择。但是光栅化时,点图元将被映射为一个单个像素。这样就无法为我们提供很大的灵活性,因为实际应用…

从windows iso文件中提取install.wim

1、首先从微软官方下载需要的windows镜像 https://www.microsoft.com/zh-cn/software-download/windows10/ 2、在下载的iso文件右键&#xff0c;打开压缩包&#xff0c;在sources文件夹下&#xff0c;应该就可以看到install.wim了。但似乎在最新的win10版本&#xff0c;微软采…

金字塔原理小节

目录 第1章 为什么要用金字塔结构 一、归类分组&#xff0c;将思想组织成金字塔 二、奇妙的数字“7” 三、归类分组搭建金字塔 四、找出逻辑关系&#xff0c;抽象概括 五、自上而下表达&#xff0c;结论先行 第1章 为什么要用金字塔结构 如果受众希望通过阅读你的文章、听…

Git系列之Git集成开发工具及git扩展使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Git实战开发》。&#x1f3af;&#x1f3af; &a…

【启扬方案】启扬安卓屏一体机在医疗自助服务终端上的应用解决方案

为了解决传统医疗模式下的“看病难、看病慢”等问题&#xff0c;提高医疗品质、效率与效益&#xff0c;自助服务业务的推广成为智慧医疗领域实现信息化建设、高效运作的重要环节。 医疗自助服务终端是智慧医疗应用场景中最常见的智能设备之一&#xff0c;它通过与医院信息化系统…

使用MVS-GaN HEMT紧凑模型促进基于GaN的射频和高电压电路设计

标题&#xff1a;Facilitation of GaN-Based RF- and HV-Circuit Designs Using MVS-GaN HEMT Compact Model 来源&#xff1a;IEEE TRANSACTIONS ON ELECTRON DEVICES&#xff08;19年&#xff09; 摘要—本文阐述了基于物理的紧凑器件模型在研究器件行为细微差异对电路和系统…

SDWAN(Software Defined Wide Area Network)概述与优势分析

文章目录 SDWAN简介SDWAN技术优势简化网络部署和维护安全传输灵活网络拓扑极致体验 SD-WAN关联技术STUNIPsec智能选路SaaS路径优化 典型组网多总部分支组网云管理组网 推荐阅读 SDWAN简介 SDWAN&#xff08;Software Defined Wide Area Network&#xff0c;软件定义广域网&…

Java TCP服务端多线程接收RFID网络读卡器上传数据

本示例使用设备介绍&#xff1a;WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; impor…