Python如何運行程式

来源:https://www.cnblogs.com/samsong1991/archive/2023/01/19/17021143.html
-Advertisement-
Play Games

Python如何運行程式 Python解釋器簡介 解釋器是一種讓其他程式運行起來的程式。 Python解釋器將讀取程式,並按照其中的命令執行,得出結果。 解釋器是代碼與機器的電腦硬體之間的軟體邏輯層。 解釋器本身可以用C程式實現,或者一些Java類實現。 程式執行 程式員視角 Python程式僅是 ...


Python如何運行程式

Python解釋器簡介

  • 解釋器是一種讓其他程式運行起來的程式。
  • Python解釋器將讀取程式,並按照其中的命令執行,得出結果。
  • 解釋器是代碼與機器的電腦硬體之間的軟體邏輯層。
  • 解釋器本身可以用C程式實現,或者一些Java類實現。

程式執行

程式員視角

  • Python程式僅是一個包含Python語句的文本文件。
  • Python文件是以.py結尾的。從技術上講,這種命名方案在被“導入”時才是必須的。
  • Python解釋器講從頭至尾按照順序運行文件中的語句。

Python解釋器視角

位元組碼編譯

  • Python內部會先將源代碼編譯成位元組碼的形式。位元組碼是一種低級的,與平臺無關的表現形式。
  • 源文件的修改和Python版本的改變都會觸發新的位元組碼的編譯。
  • 位元組碼只會針對那些被導入的文件而生成,而不是頂層的執行腳本。(嚴格來說,這是一種針對“導入”的優化)

Python虛擬機(PVM)

  • 一旦程式編譯成位元組碼,之後的位元組碼發送到通常稱為Python虛擬機(PVM)的程式上來執行。
  • 本質上PVM就是迭代運行位元組碼指令的一個大迴圈,一個接一個地完成操作。
  • 從技術上講,它只是所謂“Python解釋器”的最後一步。
    image

性能的含義

  • Python的工作中通常沒有構建或“make”的步驟。
  • Python位元組碼不是機器的二進位代碼。
  • PVM仍需解釋位元組碼,並且位元組碼指令比CPU指令需要更多的工作。
  • 與其他經典解釋器不同,Python仍有內部編譯的步驟:Python並不需要反覆地重新分析和重新分解每一行源代碼語句的文本。
  • 純Python代碼的運行速度介於傳統編譯語言和傳統解釋語言之間。

開發的含義

  • Python的執行模型導致開發和執行的環境沒有區別。
  • 在Python中,編譯器總是在運行時出現,並且是運行系統的一部分。

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Spring管理Bean-IOC-04 3.基於註解配置bean 3.1基本使用 3.1.1說明 基本說明:基於註解的方式配置bean,主要是項目開發中的組件,比如Controller,Service和Dao 組件的註解形式有: @Component 表示當前註解標識的是一個組件 @Controll ...
  • 1.在運行http時,報錯:panic: listen tcp: address 11111: missing port in address, 初始 代碼如下 func HelloWordHander(w http.ResponseWriter, r *http.Request) { /** 具體 ...
  • SpringBoot2(一)SpringBoot入門程式 在整合SSM框架時,需要大量的配置文件,SpringBoot可以簡化這些配置,提高開發效率。並且Spring內置了Tomcat、Jetty、Undertow容器。 搭建SpringBoot2的環境 方法一:通過官網生成項目 進入官網https ...
  • 在springboot項目中,dubbo消費者在設置dubbo超時時間時,可以在application.yml里設置屬性 dubbo.consumer.timeout。這是服務級。也可以在@Reference註解上給timeout屬性賦值,來指定特定介面的超時時間。 ...
  • 樹狀數組介紹 樹狀數組,顧名思義,就是樹狀的一維數組。 二叉樹同樣也可以用一維數組存儲。我們以二叉樹進行類比。 如圖所示,圖中節點的序號就是存在數組中的下標。 記父節點序號為 $p$,子節點序號為 $s$。 則有: $p$ $=$ $s$ $/$ $2$ (向下取整)。 左子節點 $s_{left} ...
  • 前言 2023年想搭建一套屬於自己的框架,做一個屬於自己想法的項目。這些年工作中一直用公司已有的框架,以前有跟著學習視頻搭建過,但自己真正動手搭建時發現問題還是很多,比如沒有引入Mybatis-plus包之前,項目api test是成功的,引入Mybatis-plus包後就一直啟動不成功,而且異常信 ...
  • 2023-01-19 一、@RequestMapping註解位置 1、書寫在類上面 (1)作用:為當前類設置映射URL (2)註意:不能單獨使用,需要與方法上的@RequestMapping配合使用 2、書寫在方法上面 (1)作用:為當前方法設置映射URL (2)註意:可以單獨使用 3、示例代碼 ( ...
  • 基本數據類型-基礎使用 數值型 整數類型 使用細節 Golang 各整數類型分:有符號和無符號,int uint 的大小和系統是32位還是64位有關 Golang 的整型預設聲明為 int 型 如何在程式查看某個變數的位元組大小和數據類型 (使用較多) Golang 程式中整型變數在使用時,遵守保小不 ...
一周排行
    -Advertisement-
    Play Games
  • 一個自定義WPF窗體的解決方案,借鑒了呂毅老師的WPF製作高性能的透明背景的異形視窗一文,併在此基礎上增加了滑鼠穿透的功能。可以使得透明窗體的滑鼠事件穿透到下層,在下層窗體中響應。 ...
  • 在C#中使用RabbitMQ做個簡單的發送郵件小項目 前言 好久沒有做項目了,這次做一個發送郵件的小項目。發郵件是一個比較耗時的操作,之前在我的個人博客裡面回覆評論和友鏈申請是會通過發送郵件來通知對方的,不過當時只是簡單的進行了非同步操作。 那麼這次來使用RabbitMQ去統一發送郵件,我的想法是通過 ...
  • 當你使用Edge等瀏覽器或系統軟體播放媒體時,Windows控制中心就會出現相應的媒體信息以及控制播放的功能,如圖。 SMTC (SystemMediaTransportControls) 是一個Windows App SDK (舊為UWP) 中提供的一個API,用於與系統媒體交互。接入SMTC的好 ...
  • 最近在微軟商店,官方上架了新款Win11風格的WPF版UI框架【WPF Gallery Preview 1.0.0.0】,這款應用引入了前沿的Fluent Design UI設計,為用戶帶來全新的視覺體驗。 ...
  • 1.簡單使用實例 1.1 添加log4net.dll的引用。 在NuGet程式包中搜索log4net並添加,此次我所用版本為2.0.17。如下圖: 1.2 添加配置文件 右鍵項目,添加新建項,搜索選擇應用程式配置文件,命名為log4net.config,步驟如下圖: 1.2.1 log4net.co ...
  • 之前也分享過 Swashbuckle.AspNetCore 的使用,不過版本比較老了,本次演示用的示例版本為 .net core 8.0,從安裝使用開始,到根據命名空間分組顯示,十分的有用 ...
  • 在 Visual Studio 中,至少可以創建三種不同類型的類庫: 類庫(.NET Framework) 類庫(.NET 標準) 類庫 (.NET Core) 雖然第一種是我們多年來一直在使用的,但一直感到困惑的一個主要問題是何時使用 .NET Standard 和 .NET Core 類庫類型。 ...
  • WPF的按鈕提供了Template模板,可以通過修改Template模板中的內容對按鈕的樣式進行自定義。結合資源字典,可以將自定義資源在xaml視窗、自定義控制項或者整個App當中調用 ...
  • 實現了一個支持長短按得按鈕組件,單擊可以觸發Click事件,長按可以觸發LongPressed事件,長按鬆開時觸發LongClick事件。還可以和自定義外觀相結合,實現自定義的按鈕外形。 ...
  • 一、WTM是什麼 WalkingTec.Mvvm框架(簡稱WTM)最早開發與2013年,基於Asp.net MVC3 和 最早的Entity Framework, 當初主要是為瞭解決公司內部開發效率低,代碼風格不統一的問題。2017年9月,將代碼移植到了.Net Core上,併進行了深度優化和重構, ...