首页

文章

python 原理及用法?

发布网友 发布时间:2022-03-03 21:17

我来回答

2个回答

热心网友 时间:2022-03-03 22:47

Python解释执行原理
 
      这里的解释执行是相对于编译执行而言的。我们都知道,使用C/C++之类的编译性语言编写的程序,是需要从源文件转换成计算机使用的机器语言,经过链接器链接之后形成了二进制的可执行文件。运行该程序的时候,就可以把二进制程序从硬盘载入到内存中并运行。
      但是对于Python而言,python源码不需要编译成二进制代码,它可以直接从源代码运行程序。当我们运行python文件程序的时候,python解释器将源代码转换为字节码,然后再由python解释器来执行这些字节码。这样,python就不用担心程序的编译,库的链接加载等问题了。
      对于python解释语言,有以下3方面的特性:
每次运行都要进行转换成字节码,然后再有虚拟机把字节码转换成机器语言,最后才能在硬件上运行。与编译性语言相比,每次多出了编译和链接的过程,性能肯定会受到影响。
由于不用关心程序的编译和库的链接等问题,开发的工作也就更加轻松啦。
python代码与机器底层更远了,python程序更加易于移植,基本上无需改动就能在多平台上运行。
      在具体计算机上实现一种语言,首先要确定的是表示该语言语*释的虚拟计算机,一个关键的问题是程序执行时的基本表示是实际计算机上的机器语言还是虚拟机的机器语言。这个问题决定了语言的实现。根据这个问题的回答,可以将程序设计语言划分为两大类:编译型语言和解释型语言。
  编译实现的语言,如:C、C++、Fortran、Pascal、Ada。由编译型语言编写的源程序需要经过编译,汇编和链接才能输出目标代码,然后由机器执行目标代码。目标代码是有机器指令组成,不能独立运行,因为源程序中可能使用了一些汇编程序不能解释引用的库函数,而库函数又不在源程序中,此时还需要链接程序完成外部引用和目标模板调用的链接任务,最后才能输出可执行代码。
  解释型语言,解释器不产生目标机器代码,而是产生中间代码,这种中间代码与机器代码不同,中间代码的解释是由软件支持的,不能直接使用在硬件上。该软件解释器通常会导致执行效率较低,用解释型语言编写的程序是由另一个可以理解中间代码的解释程序执行的。和编译的程序不同的是, 解释程序的任务是逐一将源代码的语句解释成可执行的机器指令,不需要将源程序翻译成目标代码再执行。对于解释型语言,需要一个专门的解释器来执行该程序,每条语句只有在执行是才能被翻译,这种解释型语言每执行一次就翻译一次,因而效率低下。
  Java解释器,java很特殊,java是需要编译的,但是没有直接编译成机器语言,而是编译成字节码,然后在Java虚拟机上用解释的方式执行字节码。Python也使用了类似的方式,先将python编译成python字节码,然后由一个专门的python字节码解释器负责解释执行字节码。
  python是一门解释语言,但是出于效率的考虑,提供了一种编译的方法。编译之后就得到pyc文件,存储了字节码。python这点和java很类似,但是java与python不同的是,python是一个解释型的语言,所以编译字节码不是一个强制的操作,事实上,编译是一个自动的过程,一般不会在意它的存在。编译成字节码可以节省加载模块的时间,提高效率。
  除了效率之外,字节码的形式也增加了反向工程的难度,可以保护源代码。这个只是一定程度上的保护,反编译还是可以的。追问能不能通俗易懂的说?

热心网友 时间:2022-03-04 00:05

额,你弄本书看吧。原理和Java差不多,都是解释执行。一般程序都是编译成二进制,再由CPU执行,无法跨平台。python和Java差不多,解释成字节码,不过比Java高级点。假设计算机会读汉语,假如Java解释成古汉语,python就解释成现代汉语,最后由运行环境根据不同CPU执行字节码。大致就是这么个过程,至于用法,问题太大,这货虽说是门脚本语言,但好歹也是门语言,不是一两句解释的清楚,还是看书吧。
如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 软柿子的热量 孕妇可以吃软柿子吗不是西红柿 脆柿子和软柿子的区别 脆柿子好还是软柿子好 软柿子可以多吃吗 “鱼悬洁白振清风”的出处是哪里 用大自然的声音评课好吗? 妇产科博士找超声科工作容易吗 怎能把微信6.2.0版本换回6.1.2版 微信群6.2.4怎么增加人数上限 微信6.2.2如何备份手机通讯录 电脑桌面图标不能放大? 有什么好用的识图软件 识图认人哪个软件最好 手机识图软件什么软件能识别图片位置 小米手机自动锁屏时间怎么修改 小米手机屏幕锁定时间设置教程 能举起100斤算大力吗 中医美容专业是什么 中医美容证有什么用 单声道音频什么意思(开启单声道音频有什么好处) 单声道音频是什么,有什么用处? 户口还未迁移到婆家 娘家户口怎么就没了呢 我结婚没有迁户口,现在娘家也没有怎么办 没领证生的孩子一般会判给谁 没领证生的孩子会判给谁 信用卡卡种有哪些 找一首古风歌曲 男声 低配电脑装w10还是w7流畅 电脑配置低装win7还是win10好 低配电脑适合装WIN7系统还是WIN10系统? ...500s-15isk这个联想笔记本的内存条尺寸是什么型号的有没有知道的... 越快越好.怎样减肥.而且胸部不缩水 请问徐闻县海安长途汽车客运站客服是多少? 过了平台期还会瘦吗 悦耳的意思悦耳的解释 重庆师范大学应用心理学专业的权威性如何? 打印机laserjetm1136mfp怎样设置无线打印 经典电影赏析之1:《精武英雄》 爆米花用的什么玉米 糯玉米哪个好 有机糯玉米的营养价值如何? 四大直辖市换帅原因 四大直辖市换帅为啥 Python中的return的用法? Python的5种高级用法 python中的try的用法 python中str()的用法 关于python中几个函数的用法 2010怎样设置QQ加好友时的提问?? python sort()用法 QQ加好友需要问问题的怎么设置 Python中 for 语句的用法? Python关于BeautifulSoup的用法 关于Python的用法? python3中[:]的用法? 被投诉封号了,按照提示解封不了,怎么办 Python新手,Python中except的用法和作用是什么?请指教 我的被人恶意举报了,被封号了,请问怎么解封? python中randint函数的用法是什么? 我的被人举报永久封号,自助解封也解不开怎么办 Python中or的用法 被恶意举报怎么办 python中+的用法 微信支付怎么操作? Python里or的用法 华为支付宝蚂蚁森林怎么开启行走 怎样开启支付宝运动权限,我的手机是华为荣耀6plus 拯救者电脑键盘灯怎么开启 华为手机的走步显示怎么打开 廊坊特色小吃,谁知道 华为手机怎么显示运动步数 华为怎么授权支付宝读取运动数据 为什么华为nova6没有支付宝运动步数? 苹果从旧手机东西导入到新手机步骤 华为手机蚂蚁森林为什么不记步 旧手机的东西怎么导入新手机? 华为荣耀手机支付宝蚂蚁森林计步没有运动传感器什么意思 我的支付宝已经开启了自启动授权,可以接受行走记录,但还是经常不记录步数,用的华为手机,是什么原因? 华为nova2s近几天QQ运动和支付宝都不计步了,该开的权限都开了。请问是怎么回事呢? 自己怎么制作二维码? 为什么我手机支付宝突然不计步了? 华为手机支付宝运动数据为什么不更新? 示波器的使用内容及步骤
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com