91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

      手機(jī)站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

      千鋒教育

      掃一掃進(jìn)入千鋒手機(jī)站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

      當(dāng)前位置:首頁  >  技術(shù)干貨  > pythonpython是虛擬機(jī)嗎

      pythonpython是虛擬機(jī)嗎

      來源:千鋒教育
      發(fā)布人:xqq
      時(shí)間: 2023-11-09 15:04:08 1699513448

      python并不是虛擬機(jī),運(yùn)行python文件的是python解釋器。python解釋器的工作原理如下:

      一、過程概述

      1、python先把代碼(.py文件)編譯成字節(jié)碼,交給字節(jié)碼虛擬機(jī),然后虛擬機(jī)會(huì)從編譯得到的PyCodeObject對象中一條一條執(zhí)行字節(jié)碼指令,并在當(dāng)前的上下文環(huán)境中執(zhí)行這條字節(jié)碼指令,從而完成程序的執(zhí)行。Python虛擬機(jī)實(shí)際上是在模擬操作中執(zhí)行文件的過程。PyCodeObject對象中包含了字節(jié)碼指令以及程序的所有靜態(tài)信息,但沒有包含程序運(yùn)行時(shí)的動(dòng)態(tài)信息——執(zhí)行環(huán)境(PyFrameObject)

      2、字節(jié)碼在python虛擬機(jī)程序里對應(yīng)的是PyCodeObject對象;

      .pyc文件是字節(jié)碼在磁盤上的表現(xiàn)形式。

      3、從整體上看:OS中執(zhí)行程序離不開兩個(gè)概念:進(jìn)程和線程。python中模擬了這兩個(gè)概念,模擬進(jìn)程和線程的分別是PyInterpreterState和PyTreadState。即:每個(gè)PyThreadState都對應(yīng)著一個(gè)幀棧,python虛擬機(jī)在多個(gè)線程上切換。當(dāng)python虛擬機(jī)開始執(zhí)行時(shí),它會(huì)先進(jìn)行一些初始化操作,最后進(jìn)入PyEval_EvalFramEx函數(shù),它的作用是不斷讀取編譯好的字節(jié)碼,并一條一條執(zhí)行,類似CPU執(zhí)行指令的過程。函數(shù)內(nèi)部主要是一個(gè)switch結(jié)構(gòu),根據(jù)字節(jié)碼的不同執(zhí)行不同的代碼。

      二、關(guān)于.pyc文件

      PyCodeObject對象的創(chuàng)建時(shí)機(jī)是模塊加載的時(shí)候,即import。

      1、執(zhí)行pythontest.py會(huì)對test.py進(jìn)行編譯成字節(jié)碼并解釋執(zhí)行,但不會(huì)生成test.pyc

      2、如果test.py中加載了其他模塊,如importurllib2,那么python會(huì)對urllib2.py進(jìn)行編譯成字節(jié)碼,生成urllib2.pyc,然后對字節(jié)碼解釋執(zhí)行。

      3、如果想生成test.pyc,我們可以使用python內(nèi)置模塊py_compile來編譯。

      也可以執(zhí)行命令python-mtest.py這樣,就生成了test.pyc

      4、加載模塊時(shí),如果同時(shí)存在.py和.pyc,python會(huì)使用.pyc運(yùn)行,如果.pyc的編譯時(shí)間早于.py的時(shí)間,則重新編譯.py,并更新.pyc文件。

      以上內(nèi)容為大家介紹了Python培訓(xùn)之python是虛擬機(jī)嗎,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。

      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
      請您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
      免費(fèi)領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT