• 淘股吧来冰美-趋势股的系统交易法

    课程介绍课程来自于淘股吧来冰美-趋势股的系统交易法当历过一轮惨烈的暴跌之后,常常是趋势牛股爆发的起点,连板妖股并不是人人都有能抓住机会,但是趋势牛股会给人足够的时间和机会去发现和上车无代码,只讲方法,方法和原理讲清楚了,你看着看着自己就会了,只看代码看多了,看着看着你就废了之前讲过,先满足技术选股,再研究基本面是选择趋势牛股常用的方法,技术驱动去发现趋势翻倍牛股比从基本面选择要更容易,从几千个个股中从研报从行业以及个股基本面的角度去发现和挖掘牛股的难度系数是非常高的,今天讲我自己常用的方法文件目录来冰美选股_0】.t6来冰美:趋势股的系统交易法】.df来冰美副图_0】.t6...

    2024-02-15

  • 快速简单且有趣这就是使用这些应用程序学习编程的感觉

    快速简单且有趣这就是使用这些应用程序学习编程的感觉使用应用程序学习编程是快速、简单且有趣的。您可以随时随地开始学习,而且不需要任何先前的编程知识。这些应用程序还提供了互动的学习体验,让学习过程更加有趣。快速应用程序是学习编程的最快捷方式之一。由于它们专为初学者设计,因此可以快速入门。许多应用程序还提供交互式课程和练习,这有助于您快速掌握新的概念。简单应用程序使学习编程变得简单。它们通常使用简单的语言和图形来解释复杂的编程概念。此外,许多应用程序还提供分步的说明和教程,这有助于您轻松地学习新技能。有趣应用程序使学习编程变得有趣。它们通常包含游戏、测验和挑战,这可以帮助您在学习过程中保持动力。此外,许多应用程序还提供了一个社区,您可以在其中与其他学习者交流和分享您的进度。优点无需先验知识:这些应用程序通常针对初学者设计,您无需任何先验知识即可开始学习。交互式学习体验:应用程序通常提供交互式课程和练习,这有助于您在学习过程中保持参与度。随时随地学习:您可以随时随地使用应用程序学习编程,而无需前往教室或参加课程。负担得起:许多应用程序都是免费的,即使是付费应用程序也通常比传统的编程课程便宜得多。缺点可能缺乏深度:应用程序可能无法提供与传统编程课程相同的深度和广度。可能缺乏结构:应用程序可能缺乏结构,这可能会让您难以跟踪自己的进度。可能缺乏反馈:应用程序可能无法提供及时的反馈,这可能会让您难以确定自己是否在正确地学习。总体而言,应用程序是学习编程的快速、简单且有趣的方式。它们适合初学者使用,并提供交互式学习体验。如果您正在寻找一种学习编程的便捷方式,那么应用程序是一个不错的选择。...

    2024-01-08 编程序入门教学视频 程序编程要学什么

  • 编程培训班多少钱

  • 编程培训机构哪里有_编程培训机构十大品牌

  • 在线少儿编程机构排名

  • 《STM32库开发与物联网编程实战》苏渤力主编|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《STM32库开发与物联网编程实战》【作者】苏渤力主编【页数】255【出版社】北京:中国铁道出版社,2021.12【ISBN号】978-7-113-28447-3【价格】56.00【分类】微控制器-系统设计-高等学校-教材-物联网-程序设计-高等学校-教材【参考文献】苏渤力主编.STM32库开发与物联网编程实战.北京:中国铁道出版社,2021.12.图书封面:《STM32库开发与物联网编程实战》内容提要:本教材围绕“全面振兴本科教育”的任务而编写。教材分两大部分来编写,第一部分为第一章到第九章,介绍32位微控制器的结构原理和各种外设(GPIOx、EXTI、TIM基本定时器和高级定时器、USART星通信、I2C接口、SPI接口、模数转换器ADC和数模转换器DAC)的原理及如何编程使用,同时采用固件库编程方法,编写大量程序设计案例。第二部分为第十章和第十一章,介绍终端设备的实时监测数据,如何上传到物联网云平台。第十章介绍EDP协议、HTTP协议以及MQTT协议。第十一章“端+云”案例设计,介绍了WiFi通信联网模式,案例为大棚远程实时温湿度传感系统设计和实时计步器设计。介绍了4G通信联网模式,案例为危化品运输卫星定位追踪系统设计。...

    2023-12-21 epub电子书下载网 epub电子书下载

  • pathy编程和python(path)

    Pathy编程和Pytho(ath)路径(ath)是一个Pytho模块,可用于轻松地操作文件路径。它提供了许多有用的函数,可以帮助您解析、拼接和规范化路径。安装要安装路径,您可以使用以下命令:iitallath基本用法要使用路径,您需要首先创建一个路径对象。您可以通过传递一个字符串路径或另一个路径对象来创建路径对象。gtgtgtfromathimortPathgtgtgt=Path("/home/uer/Documet/myfile.txt")一旦您创建了一个路径对象,您就可以使用它来执行各种操作。例如,您可以获取路径的名称、扩展名、父目录或子目录。gtgtgt.ame'myfile.txt'gtgtgt.ext'.txt'gtgtgt.aretPath("/home/uer/Documet")gtgtgt.childre()[Path("/home/uer/Documet/file1.txt"),Path("/home/uer/Documet/file2.txt")]您还可以使用路径对象来拼接路径。例如,以下代码将当前路径与子目录“my_udirectory”连接起来:gtgtgt=Path("/home/uer/Documet")gtgtgt/"my_udirectory"Path("/home/uer/Documet/my_udirectory")高级用法路径模块还提供了一些高级功能,例如glo()函数。该函数可用于查找与给定模式匹配的文件或目录。例如,以下代码将找到当前目录中所有以“.txt”结尾的文件:gtgtgt=Path(".")gtgtgt.glo("*.txt")[Path("./file1.txt"),Path("./file2.txt")]路径模块是一个功能强大且易于使用的库,可用于轻松地操作文件路径。它非常适合需要处理大量路径的脚本和程序。Pathy编程Pathy是一种基于Pythoath模块的编程范式。它提倡使用路径对象来表示和操作文件路径。Pathy编程可以使您的代码更加简洁、易懂和可维护。以下是一些Pathy编程的示例:#创建一个指向当前目录的路径对象=Path(".")#获取当前目录中所有以“.txt”结尾的文件file=.glo("*.txt")#循环遍历这些文件并打印它们的名称forfileifile:rit(file.ame)#创建一个指向子目录“my_udirectory”的路径对象=Path(".")/"my_udirectory"#检查子目录是否存在if.exit():#如果子目录存在,则循环遍历它并打印其内容forchildi.childre():rit(child.ame)Pathy编程是一种非常强大的编程范式,可以帮助您轻松地管理文件路径。它非常适合需要处理大量路径的脚本和程序。总结路径模块是一个功能强大且易于使用的库,可用于轻松地操作文件路径。Pathy编程是一种基于Pythoath模块的编程范式,提倡使用路径对象来表示和操作文件路径。Pathy编程可以使您的代码更加简洁、易懂和可维护。...

    2023-12-21 骆驼祥子目录 草房子目录

  • cnc编程可以自学吗女生(cnc编程可以自学吗)

    CNC编程可以自学吗CNC编程是一种计算机控制加工机床按一定顺序自动或半自动进行加工的加工方式。CNC编程通常需要用到计算机软件来编写加工程序,并将程序输入到加工机床的控制器中。CNC编程是一种比较复杂的技能,但也是一种可以自学的技能。目前网上有很多关于CNC编程的教程和资料,可以帮助人们学习CNC编程。女生学习CNC编程好吗CNC编程是一种比较适合女性的职业。CNC编程工作环境好,操作相对简单,不需要重体力劳动。而且CNC编程的就业前景也非常好,随着工业自动化程度的提高,CNC编程的需求量也在不断增加。CNC编程自学方法如果想要自学CNC编程,可以按照以下步骤进行:了解CNC编程的基本知识,包括CNC编程的基本概念、加工工艺、编程语言等。学习CNC编程软件的使用,包括软件的基本操作、如何编写加工程序等。练习编写加工程序,可以根据一些简单零件的加工图纸来编写加工程序。在实际的加工机床上进行加工,可以将编写的加工程序输入到加工机床的控制器中,然后进行加工。CNC编程自学注意事项自学CNC编程需要注意以下几点:要有足够的耐心和毅力,CNC编程是一项比较复杂的技术,需要花费一定的时间和精力来学习。要在实际的加工机床上进行练习,只有在实际操作中才能真正理解CNC编程的原理和方法。要不断地学习和积累经验,CNC编程技术是随着工业技术的发展而不断变化的,因此需要不断地学习和积累经验才能跟上时代的步伐。...

    2023-12-21

  • 注册城乡规划师培训班(注册城乡规划师含金量

    注册城乡规划师培训班:注册城乡规划师培训班是指旨在为有意愿从事城乡规划师职业的人员提供专业知识和技能的培训课程。培训班通常由相关机构或院校组织,内容涉及城乡规划的理论、实践和法律等方面。注册城乡规划师含金量:注册城乡规划师含金量是指从事城乡规划师职业所具备的价值和认可程度。注册城乡规划师含金量高,主要体现在以下几个方面:**专业知识和技能:**注册城乡规划师需要掌握城乡规划的专业知识和技能,包括规划理论、城市设计、景观规划、土地利用、交通规划等。这些知识和技能使注册城乡规划师能够独立开展城乡规划工作,为政府和企业提供专业咨询服务。**职业前景:**注册城乡规划师职业前景广阔。随着城镇化进程的不断加快,对城乡规划师的需求量不断增加。注册城乡规划师可以在政府规划部门、房地产开发企业、建筑设计院等单位就业,从事城乡规划、城市设计、景观规划等方面的工作。**职业收入:**注册城乡规划师职业收入较高。根据相关统计数据,注册城乡规划师的平均年薪在10万至20万元之间,高于其他相关职业。**社会地位:**注册城乡规划师职业社会地位较高。注册城乡规划师是国家认可的专业技术人员,在社会上有一定的知名度和认可度。注册城乡规划师在工作中可以发挥重要作用,为城乡建设做出贡献。结语:注册城乡规划师培训班对于有意愿从事城乡规划师职业的人员来说是一个很好的选择。通过培训班的学习,可以掌握城乡规划的专业知识和技能,为进入城乡规划师领域打下坚实的基础。注册城乡规划师含金量高,可以为从事城乡规划师职业的人员带来良好的职业前景、职业收入和社会地位。...

    2023-12-21 注册城乡规划师 城乡规划原理 注册城乡规划师城乡规划实务

  • it行业有什么证书(it行业含金量高的证书)

    IT行业有什么证书ComTIAA+:这是IT行业入门级证书,涵盖了计算机硬件和软件的基础知识。ComTIANetwork+:这是IT行业网络领域的证书,涵盖了网络基础知识、网络协议和网络安全等内容。ComTIASecurity+:这是IT行业安全领域的证书,涵盖了信息安全的基础知识、安全威胁和安全措施等内容。MicrooftCertifiedSolutioExert(MCSE):这是微软认证的IT行业证书,涵盖了微软操作系统的安装、配置和维护等内容。CicoCertifiedNetworkAociate(CCNA):这是思科认证的IT行业证书,涵盖了思科网络设备的安装、配置和维护等内容。OracleCertifiedProfeioal(OCP):这是甲骨文认证的IT行业证书,涵盖了甲骨文数据库的安装、配置和维护等内容。CertifiedEthicalHacker(CEH):这是认证道德黑客的IT行业证书,涵盖了渗透测试、安全漏洞分析和安全防护等内容。CertifiedIformatioSytemSecurityProfeioal(CISSP):这是认证信息系统安全专业人员的IT行业证书,涵盖了信息安全管理、安全评估和安全法规等内容。CertifiedIformatioSytemAuditor(CISA):这是认证信息系统审计师的IT行业证书,涵盖了信息系统审计的方法、技术和工具等内容。CertifiedIformatioSecurityMaager(CISM):这是认证信息安全经理的IT行业证书,涵盖了信息安全管理的原则、实践和工具等内容。IT行业含金量高的证书CertifiedEthicalHacker(CEH):该证书表明持有人具有渗透测试和安全漏洞分析的技能,在信息安全领域非常受欢迎。CertifiedIformatioSytemSecurityProfeioal(CISSP):该证书表明持有人具有信息安全管理和安全评估的技能,在信息安全领域非常受欢迎。CertifiedIformatioSytemAuditor(CISA):该证书表明持有人具有信息系统审计的技能,在信息安全领域非常受欢迎。CertifiedIformatioSecurityMaager(CISM):该证书表明持有人具有信息安全管理的技能,在信息安全领域非常受欢迎。ComTIAAdvacedSecurityPractitioer(CASP):该证书表明持有人具有高级安全分析和安全设计实施的技能,在安全领域非常受欢迎。CertifiedCloudSecurityProfeioal(CCSP):该证书表明持有人具有云安全架构和安全管理的技能,在云计算领域非常受欢迎。CertifiedKuereteAdmiitrator(CKA):该证书表明持有人具有Kuerete集群部署、管理和维护的技能,在云计算和容器化领域非常受欢迎。CertifiedKuereteAlicatioDeveloer(CKAD):该证书表明持有人具有Kuerete应用程序开发和部署的技能,在云计算和容器化领域非常受欢迎。CertifiedAIEgieer(CAE):该证书表明持有人具有人工智能模型构建、训练和评估的技能,在人工智能领域非常受欢迎。CertifiedMachieLearigEgieer(CMLE):该证书表明持有人具有机器学习模型构建、训练和评估的技能,在机器学习领域非常受欢迎。...

    2023-12-21

  • 《思维训练 B 六年级 春》新东方教育科技集团有限公司,泡泡少儿产品研发中心编著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《思维训练B六年级春》【作者】新东方教育科技集团有限公司,泡泡少儿产品研发中心编著【页数】98【出版社】杭州:浙江教育出版社,2019.01【ISBN号】978-7-5536-8043-9【分类】小学数学课-习题集【参考文献】新东方教育科技集团有限公司,泡泡少儿产品研发中心编著.思维训练B六年级春.杭州:浙江教育出版社,2019.01.图书封面:《思维训练B六年级春》内容提要:“思维训练”系列教材分为A体系、B体系和C体系三个版本,精准精炼小学阶段学生应该掌握的数学知识点,重点剖析难点与易错点,深入巩固数学基础,练就数学思维与应考能力。A体系难度最小,主要用于巩固学生的数学……...

    2023-12-19 六年级上册语文电子书 六年级毕业最火句子

  • 《Spring Cloud、Nginx高并发核心编程》尼恩编著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《SrigCloud、Ngix高并发核心编程》【作者】尼恩编著【页数】450【出版社】北京:机械工业出版社,2020.09【ISBN号】978-7-111-66557-1【价格】79.00【分类】互联网络-网络服务器-程序设计【参考文献】尼恩编著.SrigCloud、Ngix高并发核心编程.北京:机械工业出版社,2020.09.图书封面:《SrigCloud、Ngix高并发核心编程》内容提要:本书从动态代理模式、Reactor模式、三大限流策略等知识入手,深入浅出地剖析SrigCloud+Ngix系统架构的核心原理以及We高并发开发技术。全书从基础设计模式和基础原理出发,理论与实战相结合,系统、详尽地介绍SrigCloud+Ngix高并发核心编程。本书共10章。前6章剖析Feig高并发RPC的底层原理,解析Hytrix高性能配置的核心选项,阐述Hytrix滑动窗口的核心原理;后4章介绍Ngix的核心原理及其配置,并结合秒杀场景实现SrigCloud秒杀、SrigCloud+NgixLua秒杀,为广大Java开发者提供一个全面学习高并发开发的实战案例。这些知识会为广大Java工程师解决后台开发中遇到的高并发、高性能问题打下坚实的技术基础。...

    2023-12-12

  • 《Java高并发核心编程 卷2 多线程锁JMMJUC高并发设计模式》尼恩编|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《Java高并发核心编程卷2多线程锁JMMJUC高并发设计模式》【作者】尼恩编【页数】470【出版社】北京:机械工业出版社,2021.05【ISBN号】978-7-111-67988-2【价格】129.00【分类】JAVA语言-程序设计【参考文献】尼恩编.Java高并发核心编程卷2多线程锁JMMJUC高并发设计模式.北京:机械工业出版社,2021.05.图书封面:《Java高并发核心编程卷2多线程锁JMMJUC高并发设计模式》内容提要:本书聚焦Java并发编程基础知识,介绍了Java多线程、线程池、内置锁、JMM、CAS、JUC、高并发设计模式等并发编程方面的核心原理和实战知识。本书共分为10章。第1-2章浅显易懂地剖析多线程、线程池的核心原理和实战使用,揭秘线程安全问题和Java内置锁的核心原理;第3-4章细致地讲解CAS原理与JUC原子类、JMM的核心原理,揭秘CAS操作的弊端和两类规避措施、解密Java如何内存可见性和volatile关键字的底层知识;第5章细致地介绍JUC显示锁的原理和各种显示锁的使用;第6章图文并茂、深入浅出地阐述JUC高并发的基础设施:AQS抽象同步器核心原理;第7章介绍JUC容器类;第8-10章介绍常见的Java高并发设计模式的原理和使用。...

    2023-12-12 设计模式 多线程怎么设置 设计模式 多线程怎么做

  • 《Java高并发编程详解》汪文君著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《Java高并发编程详解》【作者】汪文君著【丛书名】JAVA核心技术系列【页数】398【出版社】北京:机械工业出版社,2020.06【ISBN号】978-7-111-65770-5【价格】99.00【分类】JAVA核心技术系列【参考文献】汪文君著.Java高并发编程详解.北京:机械工业出版社,2020.06.图书封面:《Java高并发编程详解》内容提要:本书共包含四部分,第一部分(第1章)详细介绍了JMH(JavaMicroechmarkHare)基准测试工具的使用细节。该工具是由OracleJVM开发团队相关成员开发的,借助它,开发者将能足够了解自己所编写的程序代码,以及程序在运行期的精确性能表现。在本书的其他章节对API之间的性能进行对比时,主要也是依赖于该工具,因此在学习本书的其他章节时,最好能够掌握该部分内容,强烈推荐开发者将JMH纳入自己日常的“兵器库”中,以便能够随时随地进行利用。第二部分(第2-5章)主要围绕Java并发包进行展开,涉及的内容包括Java的原子类型及其底层原理;Java的并发工具集,其中还穿插了GoogleGuava的部分内容;Java的并发容器,包括阻塞队列BlockigQueue和并发容器等内容;Java的ExecutorService,以及Future家族成员的详解。第三部分(第6章),主要介绍自Java8引入的Stream,并且重点解释了具备高并发能力的并行流原理,以及如何自定义并行流等相关内容。第四部分(第7章),深入讲解Metric,它作为一个比较小巧的度量工具集,目前已经成为事实上的度量标准,在很多开源软件、框架和平台中都能看到对它的使用,比如Aache的Kafka、Sark、Storm、SrigCloud等都是使用Metric作为系统运行性能指标收集的手段。...

    2023-12-12 Java mobile Java Java mobi专用库

  • 《Python高并发与高性能编程 原理与实践》周宇凡著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《Pytho高并发与高性能编程原理与实践》【作者】周宇凡著【页数】226【出版社】北京:机械工业出版社,2023.06【ISBN号】978-7-111-72939-6【价格】89.00【分类】软件工具-程序设计【参考文献】周宇凡著.Pytho高并发与高性能编程原理与实践.北京:机械工业出版社,2023.06.图书封面:图书目录:《Pytho高并发与高性能编程原理与实践》内容提要:这是一本帮助Pytho初级码农向高手进阶的专业指导书,可帮助所有Pytho从业者摆脱因ChatGPT等产品带来的职业危机。书中不仅对Pytho必备基础知识进行了解读,对所有的Pytho高级特性进行原理级剖析,还囊括了大量指导实践的内容,可以帮助读者真正实现高并发、高性能编程。本书从Pytho高级基础知识开始,逐步介绍高并发概念在Pytho语言中的实现过程、高性能特性是如何在Pytho语言中实现的,最后结合本书作者真实的项目经验,应用Pytho高并发、高性能特性来解决真实项目开发过程中遇到的问题和优化项。本书包括4篇19章内容。基础篇:对Pytho高级编程所涉概念、当下主流的Pytho3.X版本进行系统性介绍,这是进行Pytho高级编程必备的知识,也是顺利阅读本书的基础。高并发篇:对Pytho如何实现高并发进行原理级解读,其中包括Pytho对线程的实现与操作、Pytho对协程的实现与操作,以及Pytho中的锁原语、原子性和线程池的实现原理和应用步骤等特色内容。高性能篇:以对Pytho代码进行性能优化为根本目标,深度剖析了如何对基本的Pytho代码进行性能优化,如何基于Profile对Pytho代码进行性能优化,如何基于PythoC拓展对Pytho代码进行性能优化,以及如何对优化前后的Pytho代码性能指标进行监测与统计。实践篇:以常见的邮件发送、日志打印、登录注册等功能为例,详细介绍各种功能如何通过Pytho实现高并发,其中不仅包括实现步骤,还包括如何基于Locut性能测试框架对上述功能进行压力测试。另外,本书还包括两个附录,从实操角度对Djago和FatAPI这两个常用的Pytho框架进行介绍。《Pytho高并发与高性能编程原理与实践》内容试读基础篇■第1章Pytho高级编程所涉及的基础概念·第2章Pytho3.X版本简析:■■周面■度■■■图■■夏:■■■■是间■■■■■■■■每Cte%第1章Pytho高级编程所涉及的基础概念本章将为读者介绍Pytho高级编程中的一些基础概念和定义,这些基础概念和定义会贯穿全书,需要读者根据自身的实际水平来有选择地学习。本章内容包括Pytho中的类,Pytho中的对象,进程与线程,多线程与多进程等。1.1Pytho中的类Pytho作为一门面向对象的高级编程语言,提供了丰富的面向对象编程的实现,包括面向对象语言中的类、对象。对于任意一门面向对象的高级编程语言,最基础的特性都是封装、继承和多态,而实现这些特性的基础正是面向对象编程语言中的类。类是真实世界中的事务在Pytho语言中的一种实现,其规定了真实世界中的事务在Pytho语言中的组成,是使用Pytho来描绘真实世界中事务的手段。在真实世界中,事务可能是一个非常大的问题,也可能是一个非常小的问题,即在真实世界中,事务本身不是一个定数,所以,Pytho中类的设计也是如此。Pytho中的类规定了真实世界中的事务在Pytho中的定义和实现,我们可以通过以下代码定义Pytho中的类:cla【claName]://相应的操作执行上述代码即可创建一个名为[claName]的Pytho类。在Pytho中存在一个全局解释器,该解释器用来执行Pytho代码。Pytho解释器将处理类的过程全部执行完毕后,通过上述代码创建的Pytho类才能被真正创建。Pytho中的类在被创建之后,在类的同一第1章Pytho高级编程所涉及的基础概念3生命周期下,就不允许继续修改了,因为该类已经被转义为Pytho解释器可识别的代码,这些代码已经被解释和执行了。如果需要继续修改该Pytho类,我们可以先在该Pytho类中编写需要修改的内容,然后手动执行并重新解释。在了解了Pytho类的创建过程和解释过程之后,我们真正创建一个Pytho类来进一步了解Pytho类的组成。根据上述创建类的代码,我们创建一个名为HelloPytho的类,并且在HelloPytho类中先定义两个成员变量trA和trB,再定义两个方法:一个方法被声明为Hello,另一个方法被声明为World。创建HelloPytho类的代码如下所示。claHelloPytho:trA"trA"trB"trB"defHello(elf):adefWorld(elf):a我们再来看一下HelloPytho类所在的目录结构,以PyCharm代码编辑器为例,HelloPytho所在目录结构如图1-1所示。回Project,图÷一HelloWorld..y×ahighProD:\ytho3.9.5\vevm1claHelloPytho:highProtrA"trA"gtD.ideatrB"trB"gtveviitydefHello(elf):tagi.y6aettig.y7url.y8defWorld(elf):wgi.y9ahgexamleiityHelloWorld.y图1-1HelloPytho所在目录结构这里是在一个名为highPro的项目中创建HelloPytho类。highPro项目是本书所使用的项目,该项目会在后文进行介绍通过图l-l可知,HelloPytho类所在的Pytho文件名为HelloWorld,并不是HelloPytho,这在Pytho语言中是允许的,但是在Java语言中会直接报错,连编译都不能。这就是Pytho语言和Java语言最显著的区别。Pytho解释器在解释Pytho代码时,会先对Pytho代码进行编译,在编译通过之后,才会将编译的Pytho代码交给Pytho解释器(虚拟机)来执行,这是Pytho代码解释的4基础篇全过程,而在这个过程中会有不同类型的文件产出。我们以HelloPytho类为例展开介绍,如图1-2所示。HelloPythoHelloPytho类字节码文件类可运行代码HelloPytho源代码Pytho编译器Pytho虚拟机Pytho解释器图1-2HelloPytho类代码执行过程通过图1-2可知,HelloPytho类会先被Pytho编译器进行编译。在编译阶段,Pytho编译器会检查HelloPytho类代码是否符合Pytho语言所规定的语法格式和语义规范,还会检查各种变量的定义和引用等。只有这些检查项全部通过,编译才能通过,这些检查项中只要有一项存在异常或错误,Pytho编译器就会立即中断编译,向用户抛出异常或错误重复该过程,直到编译通过。在HelloPytho类编译通过后会输出HelloPytho类字节码文件,如图1-3所示。名称修改日期类型大小Helloworld.cytho-39.ycPVC文件图1-3HelloPytho类字节码文件通过图1-3可知,HelloPytho类生成的字节码文件名为HelloWorld.cytho-39.yc,大小为1KB。HelloPytho类字节码文件名称由4部分组成·HelloWorld:表示Pytho文件的名称,即HelloPytho类所在的Pytho文件的名称·cytho:表示HelloPytho类被哪种虚拟机编译,本书使用的是Pytho默认实现的CPytho虚拟机,所以这里是cytho。。39:表示当前Pytho版本在CPytho虚拟机中对应的字节码版本号,该版本号默认由采用的Pytho版本的第一位大版本号和第二位小版本号组成,忽略其余位数的版本号。本书采用的Pytho版本是3.9.5,取前两位来表示这一字节码版本号,忽略后面的5,所以这里是39。·yc:这是文件的后缀名,表示当前的文件类型是Pytho字节码文件,而不是Java字节码文件。Java字节码文件名以javac结尾。接着将HelloPytho类字节码文件交由CPytho虚拟机处理。CPytho虚拟机的主要工作是解析HelloPytho类字节码文件,并根据该字节码文件中的内容为HelloPytho类中的各种变量分配内存空间,为各种方法创建执行所需的栈帧空间。如果该类中存在类的实例,第1章Pytho高级编程所涉及的基础概念◆5CPytho虚拟机会为该类的实例分配内存空间,并初始化该类的实例的其他属性。下面介绍HelloPytho类字节码文件中的底层内容,以便更好地理解Pytho类字节码文件,如图1-4所示。HelloWorld.cytho-39.y...Offet0123456789ABCDEFANSIASCII00000000610D0D0A00000000DA808C6286000000DEat00000010E3000000000000000000000000000000000000200003000000400000007312000000470000000030640064018400640183025A0064025300dddf2d0000004029036300000000000000000000000000c0000005000000002000000400000007324000000360000006065005A0164005A0264015A0364025A04ezdZdzdZ000000706403640484005A056405640684005a06ddZdd.Z00000080640753002908DA0B48656C6C6F507974d6BelloPyt00000090686F6EDA0473747241DA047374724263houtrADtrBc000000A001000000000000000000000001000000000000B001000000430000007304000000640053d000000C000A9014EA900A901DA0473656C667205gNgg0elfr000000D00000007205000000A0D48656C6C6E57G日e11aW000000E06F726C642E7079DA48656C6C6F0500orld.yuHello000000F0000073020000000001A1148656C6C6型zHello00000100507974686F6E2E48656C6C6F63010000Pytho.Helloc00000110000000000000000000010000000100000000012000430000007304000000640053007204dSr00000130000000720500000072060000007205000000014000007205000000208000000DA05576FWo00000150726C640800000000000000017A11rld0000016048656C6C6F507686F6E2E576E726CBelloPytho.Worl00000170644E2907DA085616D65DAOAdN)amet00000180SF5F6D6F64756C%5FDA57175modulequ00000190616C6E616D655E02000000720300alamer000001A000007209000000720A00000072050000000001B000720500000072050000007208000000000001C0720100000001000073080000000801000001D004010402080372010000004E29017201N)E000001E000000072050000007205000000720500000001F000007208000000DA083C6D6厘64756C650000002003E01000000F300000000图1-4HelloPytho类字节码文件中的底层内容这里我们只需要看3个部分。第一部分是图1-4所示的前8位,即610D0D0A。这部分是Pytho字节码的第一部分,即Pytho语言中的魔数。CPytho虚拟机根据这8位内容判断当前需要处理的字节码文件是不是Pytho字节码文件。如果一个字节码文件的头内容中包含610D0D0A,就表示该字节码文件是Pytho字节码文件,此时CPytho虚拟机才会继续向下解析该文件,否则会终止解析,并向用户抛出异常或错误。CPytho虚拟机所能识别的Pytho字节码的魔数,同样会随着Pytho版本而发生改变,并不是固定不变的。第二部分是图1-4所示的第8列到第B列的内容,即DA808C62。这8位表示Pytho字节码文件头的大小。我们可以使用数据解释器计算出该类字节码文件头的大小,如图1-5所示。第三部分是Offet,即偏移量从00000000往下一直到该文件结束(不包含00000000】的内容,这部分就是HelloPytho类中的字段、方法或者实例被编译成字节码之后的内容。6基础篇HelloWorld.cytho-39.y...Offet0123456789ABCDEFANSIASCII00000000610D0D0A00000000DA808C6286000000aDEat00000010E3000000000000000000000000000020000300000040000000731200数据解释器00000030640064018400640183025A00000000402903630000000000000000008Bit(±:980000005000000002000000400000007316Bit(±y-31,1340000006065005A0164005A0264015A0332Bit(±34,402图l-5HelloPytho类字节码文件头的大小回到我们平常所说的Pytho代码解释过程,结合笔者对HelloPytho类代码的解析过程可以得出,Pytho语言中所说的解释器其实就是Pytho编译器和Pytho虚拟机结合的产物,即Pytho代码的编译和Pytho虚拟机的处理是同一时机触发的,只不过这个过程没有对外暴露而已。1.2Pytho中的对象本质上来说,Pytho中的对象是对Pytho中的类进行实例化后输出的产物。Pytho中的对象和Pytho中的基本类型变量在实现方式上是完全不同的。对于Pytho中的基本类型变量来说,Pytho官方在Pytho语言层面已经进行了规定或约束。以数字类型变量来说,在Pytho语言对外发布时,数字类型已经被固化到了Pytho语言当中,并且通过一定的数字占位,与Pytho虚拟机中的语义规范进行对应,即我们在Pytho中声明了数字类型的基本变量之后,Pytho虚拟机通过已经固化好的数字占位来识别这一变量所属的类型」Pytho中的对象本身也是一种变量,只不过这种变量的类型是随机的、可变的,这是与Pytho中的基本类型变量最大的不同之处。Pytho官方规定了Pytho对象在Pytho虚拟机中的存活方式,即以一种对象地址的形式在Pytho虚拟机中存在,且对象的生命周期交由Pytho虚拟机自动管理,不需要开发者手动管理Pytho对象的生命周期。需要开发者做的,只是创建Pytho对象在Pytho中,创建一个类的对象的代码如下所示claExamlecla:NumA6NumB3defdemo(elf):retur'helloytho'ExamleclaojectExamlecla()在上述代码中,我们定义了一个名为ExamleCla的类,并且在ExamleCla类···试读结束···...

    2023-12-12 python mobi库 python mobile app

学习考试资源网-58edu © All Rights Reserved.  湘ICP备12013312号-3 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园