• Barry Python实战-从0到1搭建直播视频平台(更新完毕)

    Barry Python实战-从0到1搭建直播视频平台(更新完毕)

    课程介绍课程来自于BarryPytho实战-从0到1搭建直播视频平台(更新完毕)文件目录image6520502e46d306d6817dc4d2482c1682805.jgdcf943799f88322c76f65535c08c6.jg31840f68628af9f3398e312ee782f.jg6521023100371359f372893a69913fe3d0756.jg0fedc838595a2072ec0e218cc0227.jge08f25e8283a1fe86015c2e940017.jg8fa5c0d740459fcf58a01dd157229c.jgff12df195094686d1141dedc8c2a7037.jg055c989c8677c4a7ff724f6cdfdedee0.jg185d221c04e84c3846d6f3c7e5d484d0.jg220e00d18985cc3a622f1f9d9e09f4.jgyyfaa61924e3ea5a9a66cda541830.jg65273612747996039f0342d7de8107259faea.jg2dc08251e3606d58e409715cd60.jg8e937d5960d7a087e5e5d406242e1.jgc158aaa4f02edf80c040aa202ed7f09e.jg649ea568d478087d522f1d427f44327.jg671f01037fd49dedc1f10e97a18de4c1.jg5142f6961eed796c3f5dac594a3e5dcd.jgvideo开篇词|打通前后端技术,玩转视频平台1ffeac1-18721043d2-0000-0000-01d-dacd.m4开篇词|打通前后端技术,玩转视频平台.md开篇词|打通前后端技术,玩转视频平台.df01|初识Pytho(上):入门Pytho你应该怎么做?.md01|初识Pytho(上):入门Pytho你应该怎么做?.df01|初识Pytho(上):入门Pytho你应该怎么做?.m302|初识Pytho(下):入门Pytho你应该怎么做?.m302|初识Pytho(下):入门Pytho你应该怎么做?.md02|初识Pytho(下):入门Pytho你应该怎么做?.df开篇词|打通前后端技术,玩转视频平台.m303|初识_We:学习_We_最好的方式是什么?.md04|Vue_概览:Vue_哪些内容是你必须要掌握的?.md05|需求分析:如何确定在线视频平台的核心功能模块?.md06|框架搭建:如何用_vue-cli_搭建一个前端框架?.md07|路由设计:如何借助_Vue_Router_设计出更合理的路由?.md08|个人中心与权限:如何玩转各类系统的权限管理?.df08|个人中心与权限:如何玩转各类系统的权限管理?.md09|ElemetUamCSS:如何设计页面逻辑与功能点?.df10|详情页实现:如何实现需求定制化?.df11|DPlayer播放器综合应用:怎样实现自己的第一个视频播放器?.df12|视频发布功能实现:怎样满足用户发布视频的需求?.df13|数据中心应用:平台数据大脑应具备哪些核心指标?.df14|EChart实战:可视化如何更好地服务于创作者?.df15|直播中心搭建(一):如何通过Video.j配置直播中心?.df16|直播中心搭建(二):如何通过VideoJ配置直播中心?.df17|项目打包与优化:前端必备的Weack打包配置详解.df...

    2024-04-14

  • 新版Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课 - 带源码课件

    新版Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课 - 带源码课件

    资源名称:新版Scray打造搜索引擎畅销4年的Pytho分布式爬虫课-带源码课件资源简介:未来是什么时代?是数据时代!数据分析服务、互联网金融,数据建模、自然语言处理、医疗病例分析hellihelli越来越多的工作会基于数据来做,而爬虫正是快速获取数据最重要的方式,相比其它语言,Pytho爬虫更简单、高效。...

    2024-02-23 scrapypython模拟登录

  • 国内首个面向工业级实战的点云处理课程 - 带源码课件

    国内首个面向工业级实战的点云处理课程 - 带源码课件

    资源名称:【3D视觉工坊】国内首个面向工业级实战的点云处理课程-带源码课件资源简介:计算机视觉的最终体现是三维视觉,而三维视觉的表达方式则是点云,点云处理在整个三维视觉领域占有非常重要的地位,几乎涉及到所有相关领域,例如自动驾驶感知定位、SLAM、三维场景重建、AR/VR、SFM、姿态估计、三维识别、结构光、立体视觉、三维测量、视觉引导等。...

    2024-06-11 点云三维重建 点云三维建模

  • Python基础+数据科学入门

    Python基础+数据科学入门

    资源名称:【深度之眼】Pytho基础+数据科学入门资源简介:Pytho基础+数据科学入门。...

    2024-02-05 茅山法术大全秘籍 茅山法术是真的吗

  • Google的AIMagicComposeBeta版面向部分用户上线

    Google的AIMagicComposeBeta版面向部分用户上线

    Google的AIMagicComoeBeta版面向部分用户上线Google近日推出了旗下人工智能项目AIMagicComoeBeta的测试版,并面向部分用户开放。该项目旨在利用人工智能技术帮助人们更高效地撰写文章、电子邮件和社交媒体帖子等内容。AIMagicComoeBeta版目前仅支持有限数量的语言,包括英语和西班牙语。用户可以通过在浏览器中访问该项目主页来使用该服务。该项目还提供了移动应用程序,可在iOS和Adroid平台上下载。用户在使用AIMagicComoeBeta版时,可以输入一个主题或大纲,然后由该项目生成相应的文章或电子邮件内容。该项目还支持用户输入对话记录,然后生成相应的对话总结或回复。AIMagicComoeBeta版还在不断改进中,未来可能将支持更多语言和提供更多功能。该项目还可能被整合到谷歌的其它产品中,例如Gmail和谷歌文档。AIMagicComoeBeta版的使用完全免费,用户可以无限次数地生成内容。以下是AIMagicComoeBeta版的一些主要功能:输入主题或大纲,即可生成相应的内容。支持对话记录输入,并生成相应的对话总结或回复。支持多种语言,包括英语和西班牙语。提供移动应用程序,可在iOS和Adroid平台上下载。无限次数使用,完全免费。AIMagicComoeBeta版的上线可能会对内容创作领域产生重大影响。该项目可以帮助人们更高效地撰写文章、电子邮件和社交媒体帖子等内容,从而节省大量时间和精力。该项目还可以帮助人们克服写作障碍,并提高写作质量。AIMagicComoeBeta版只是人工智能在内容创作领域应用的一个缩影。随着人工智能技术的不断发展,预计未来会有更多类似的项目出现。人工智能将成为内容创作领域的重要工具,并将对该领域产生深远影响。...

    2024-01-08

  • Python爬虫——关键字爬取百度图片

  • 面向汉语作为第二语言教学的语法点知识库构建研究》谭晓平著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《面向汉语作为第二语言教学的语法点知识库构建研究》【作者】谭晓平著【页数】282【出版社】上海:上海三联书店,2018.01【ISBN号】978-7-5426-6503-4【价格】49.00【分类】对外汉语教学-语法-教学研究【参考文献】谭晓平著.面向汉语作为第二语言教学的语法点知识库构建研究.上海:上海三联书店,2018.01.图书封面:《面向汉语作为第二语言教学的语法点知识库构建研究》内容提要:构建面向汉语作为第二语言教学的语法点知识库是语言资源建设的一项重要内容,也是提高汉语作为第二语言教学信息化水平的重要途径。本书以三个平面理论、对外汉语教学语法理论为基础,对语法点知识库的描述对象、语法点描述框架、语法点标注体系进行了专门研究,构建了面向汉语作为第二语言教学的语法点知识库及应用平台,探讨了语法点知识库在语法点句法语义接口研究、汉语作为第二语言教学与教材研究等领域的应用。...

    2023-12-21 中文知识库 知识汉语词典

  • 《语料库语言学及Python实现》李安著|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《语料库语言学及Pytho实现》【作者】李安著【页数】223【出版社】济南:山东大学出版社,2018.08【ISBN号】978-7-5607-6209-8【分类】语料库-语言学;软件工具-程序设计【参考文献】李安著.语料库语言学及Pytho实现.济南:山东大学出版社,2018.08.图书封面:《语料库语言学及Pytho实现》内容提要:本书主要包括语料库语言学的基本理论和语料库建设与研究的Pytho实现两部分内容。作者将语料库语言学理论和Pytho方案相结合,介绍了语料库语言学、语料库的设计与研发、语料库的研究范式、Pytho的基本原理与编程原理、基于Pytho的语料获取等内容。...

    2023-12-21 语料库语言学的研究方法主要依赖于什么技术? 语料库语言学研究方法

  • 《语言数字人文系列 基于Python的语料库翻译 数据分析与理论探索》管新潮,陆晓蕾作|(epub+azw3+mobi+pdf)电子书下载

    图书名称:《语言数字人文系列基于Pytho的语料库翻译数据分析与理论探索》【作者】管新潮,陆晓蕾作【丛书名】语言数字人文系列【页数】223【出版社】上海:上海交通大学出版社,2022.08【ISBN号】978-7-313-27035-1【价格】78.00【分类】软件工具-程序设计-应用-语料库-翻译学-研究【参考文献】管新潮,陆晓蕾作.语言数字人文系列基于Pytho的语料库翻译数据分析与理论探索.上海:上海交通大学出版社,2022.08.图书封面:《语言数字人文系列基于Pytho的语料库翻译数据分析与理论探索》内容提要:本书旨在依托Pytho编程语言就语料库翻译这一方向展开理论深化与技术创新方面的融合式探索,其内容不仅涉及学界的语料库翻译学,也涉及业界的语料库与翻译。全书分为九章内容:语料库翻译概述、多变量协同效应、译文可读性、翻译对等的短语特征、翻译知识库的构建与应用、语言结构识别与译后编辑、翻译质量评估、文本情感对比分析以及双语工具开发与应用。第1章是对语料库翻译的学界研究和业界应用的综合性概述与分析:第2-8章均以翻译理论为原点,探索翻译理论与当下技术实现融合的可能性。第9章呈现了多种双语Pytho技术解决方案。全书既有理论描述,也述及实践应用,强调了理论与实践并驾齐驱的可行性。本书适合高等院校翻译学等专业的师生以及从事语言服务或翻译实践活动的爱好者阅读使用。...

    2023-12-21 epub mobi azw3哪个好 epub mobi pdf区别

  • 一对象棋(一对象

    一对象棋(一对象)一对象棋,顾名思义,就是用一个对象来模拟整个象棋游戏。这是一种非常规的象棋实现方式,但它却有着独特的优势。一对象棋的优势简洁性:一对象棋的代码非常简洁,通常只有几百行代码。这使得它非常易于理解和维护。可移植性:一对象棋的代码可以在任何支持面向对象编程的语言中运行。这使得它非常适合在不同的平台上进行移植。可扩展性:一对象棋的代码非常容易扩展。如果需要添加新的功能,只需要在对象中添加新的方法即可。一对象棋的实现一对象棋的实现非常简单。首先,需要定义一个对象来模拟象棋棋盘。这个对象可以是一个二维数组,也可以是一个对象数组。然后,需要定义一个对象来模拟象棋棋子。这个对象可以是一个简单的结构体,也可以是一个复杂的类。最后,需要定义一个函数来模拟象棋的规则。这个函数可以是一个简单的循环,也可以是一个复杂的算法。一对象棋的应用一对象棋可以用于多种目的。它可以用于教学、娱乐、研究。教学:一对象棋可以用于教学象棋的规则和策略。由于一对象棋的代码非常简洁,因此非常适合初学者学习象棋。娱乐:一对象棋可以用于娱乐。玩家可以与电脑对战,也可以在线与其他玩家对战。研究:一对象棋可以用于研究象棋的策略和算法。由于一对象棋的代码非常容易扩展,因此非常适合研究人员进行各种实验。一对象棋的未来一对象棋是一种非常有潜力的象棋实现方式。它具有简洁性、可移植性、可扩展性等优点,非常适合在不同的平台上进行移植。随着人工智能技术的不断发展,一对象棋很有可能会成为研究象棋策略和算法的利器。...

    2023-12-21 python象棋代码 中国象棋代码

  • 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 骆驼祥子目录 草房子目录

  • 铠侠展示了面向数据中心的下一代 SSD 存储解决方案

    近日,铠侠展示了面向数据中心的下一代SSD存储解决方案,包括业界最快的PCIe®4.0SSD、业界首款支持PCIe®5.0的SSD以及面向数据中心的新NVMe™SSD。这些解决方案旨在满足新兴应用(如人工智能、机器学习和高性能计算)对存储速度、容量和可靠性的不断增长的需求。业界最快的PCIe®4.0SSD铠侠的CM6系列PCIe®4.0SSD是一款专为数据中心而设计的企业级SSD。它采用铠侠最新的BiCSFLASH™3D闪存技术,可提供业界最快的顺序读写速度,分别高达7,000MB/和6,100MB/。CM6系列SSD还具有低延迟和高耐用性,使其非常适合处理高性能计算、人工智能和机器学习等要求苛刻的应用。业界首款支持PCIe®5.0的SSD铠侠的PM6系列PCIe®5.0SSD是业界首款支持PCIe®5.0接口的SSD。它采用铠侠最新的BiCSFLASH™3D闪存技术,可提供高达14,000MB/的顺序读写速度。PM6系列SSD还具有低延迟和高耐用性,使其非常适合处理需要超高性能的应用,如高性能计算、人工智能和机器学习等。面向数据中心的新NVMe™SSD铠侠的XS700系列NVMe™SSD是一款专为数据中心而设计的高性能SSD。它采用铠侠最新的BiCSFLASH™3D闪存技术,可提供高达6,700MB/的顺序读写速度。XS700系列SSD还具有低延迟和高耐用性,使其非常适合处理需要高性能和可靠性的应用,如虚拟化、数据库和文件共享等。铠侠的下一代SSD存储解决方案旨在满足数据中心对速度、容量和可靠性的不断增长的需求。这些解决方案将帮助企业提高数据中心性能,并为新兴应用提供支持。...

    2023-12-20 存储解决方案 摄影师 存储解决方案包括

  • GalaxyS24可以利用人工智能从视频中删除对象

    GalaxyS24可以利用人工智能从视频中删除对象三星GalaxyS24是一款即将推出的标志性智能手机,据传具有多种令人印象深刻的功能,其中包括利用人工智能从视频中删除对象的能力。此功能将允许用户在拍摄视频时删除不需要的元素,例如行人、汽车或建筑物。GalaxyS24的这项功能是由其强大的处理器和先进的摄像头系统提供支持的。它使用人工智能来识别视频中的对象,然后将其删除,而不会影响视频的整体质量。此功能对于想要拍摄干净、专业视频的用户非常有用,例如房地产经纪人、活动策划者和新闻记者。此外,GalaxyS24还可以识别和突出显示视频中的特定对象。例如,用户可以将某个人作为兴趣点,然后手机将自动将焦点集中在该人身上,即使他们在视频中移动。此功能对于想要拍摄特定主题的视频或想要确保他们的视频始终聚焦于重要元素的用户非常有用。GalaxyS24将于2023年2月1日发布。该手机预计将配备6.2英寸AMOLED显示屏、骁龙8Ge2处理器、12GBRAM和256GB存储空间。它还将配备三摄像头系统,包括一个50MP主摄像头、一个12MP超广角摄像头和一个10MP长焦摄像头。GalaxyS24是一款功能强大的智能手机,具有多种令人印象深刻的功能。其中最令人兴奋的功能之一是能够利用人工智能从视频中删除对象。此功能对于想要拍摄干净、专业视频的用户非常有用,例如房地产经纪人、活动策划者和新闻记者。...

    2023-12-20 摄像头人工智能 摄像头人工智能视觉识别算法

  • 鹿晗对象谁啊(鹿晗对象是谁)

    鹿晗目前没有公开的对象。鹿晗是中国内地男歌手、演员,1990年4月20日出生于北京市海淀区,2012年4月8日加入韩国SM娱乐公司,2017年10月8日与SM娱乐公司合约到期,10月10日返回中国发展。鹿晗曾出演过《重返20岁》、《我是证人》、《盗墓笔记》等多部电影,还发行过《鹿晗》、《Reloaded》、《Xeriece》等多张音乐专辑。2017年10月8日,鹿晗与关晓彤公开恋情,2018年2月14日,鹿晗与关晓彤公布恋情一周年。2022年4月20日,鹿晗与关晓彤宣布分手。目前,鹿晗没有公开的对象。...

    2023-12-20 杨幂鹿晗我是证人 鹿晗我是证人快乐大本营是哪一期

  • 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 
站点地图| 免责说明| 合作请联系| 友情链接:学习乐园