自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

影想Python編譯的過程控制的三個參數(shù)詳細介紹

開發(fā) 后端
如果你想了解Python編譯的過程控制的優(yōu)化額過程中會有三個參數(shù)能影響到其的操作過程,以下的文章就是對影響Python編譯的過程控制的一些參數(shù)的具體介紹。

今天我們將給大家介紹一下Python編譯的過程控制是如進行的,以下的文章就是通過Python對相關(guān)字節(jié)碼進行一些優(yōu)化,以及所需優(yōu)化的相關(guān)代碼,下面的文章就是對Python編譯的過程控制的相關(guān)步驟的介紹。

介紹一下如何“稍微”Python編譯的過程控制。只所以說是稍微,是因為無論何種情況,Python都會對字節(jié)碼進行一些簡單優(yōu)化(basic Peephole Optimization,詳情參見Python的源代碼。2.5版本的Python位于 Python/compile.c,2.7版本則位于Python/peephole.c)。這些優(yōu)化不能通過環(huán)境變量或者命令參數(shù)將其禁用。比如:

 

  1. if True:  
  2. return 1  
  3. else:  
  4. return 0   

 

會被優(yōu)化成為:

 

  1. return 1 

更多的優(yōu)化正被添加到Python源代碼內(nèi)。只有三個參數(shù)能影響Python編譯時的優(yōu)化:

第一、去除所有的assert語句,并將__debug__這個內(nèi)置變量的值設(shè)置為False。方法是運行Python的時候在命令行添加參數(shù):

 

  1. python -O im.py 

第二、除了第一條所做的事情,還去除所有docstring。方法是運行Python的時候在命令行添加參數(shù):

 

  1. python -OO im.py 

第三、默認(rèn)的,對于一個模塊,Python編譯后的字節(jié)碼會被保存到與源代碼相同的文件夾內(nèi)。這樣就可以加速模塊的載入速度。大多數(shù)使用Python的朋友們都寫過包含兩三個文件的程序。通??梢园l(fā)現(xiàn)除了.py文件之外,文件夾內(nèi)還會有.pyc文件。

mymodule.pyc文件即是mymodule.py的字節(jié)碼。如果運行Python的命令行包含了”-O”或者”-OO”參數(shù),Python會將優(yōu)化后的字節(jié)碼保存到mymodule.pyo文件。想要禁止生成.pyc或者.pyo文件,可以在運行Python的時候,在命令行里添加參數(shù):

 

  1. python -B im.py 

還可以設(shè)置環(huán)境變量:

 

  1. c:\> set PYTHONDONTWRITEBYTECODE=x 

看完上面三條說明,有的朋友可能會疑問,”-O”和”-OO”參數(shù)真的就干那三件事?不幸的是,還真是如此。至少在Python2.5的時候就是這樣。所以加”-O”參數(shù)并不能明顯優(yōu)化Python的運行速度。這兩個選項的真正作用是區(qū)分調(diào)試版本和發(fā)行版本。在程序中可以盡量多增加一些assert語句,以便程序員在調(diào)試階段發(fā)現(xiàn)一些隱藏的錯誤。而在發(fā)布時,將這些語句去除。如果你的軟件是商業(yè)軟件的話,加上”-OO”參數(shù)可以讓別人看不清內(nèi)部函數(shù)的用途,增加一些破解的難度。有了這些,誰還說Python不能寫商業(yè)軟件?以上的文章就是對Python編譯的過程控制的實際應(yīng)用方案的具體介紹。

【編輯推薦】

  1. Python源代碼的編譯的具體方案應(yīng)用描述
  2. Python 配置文件的實際應(yīng)用解析
  3. Python安裝配置的具體步驟的相關(guān)介紹
  4. python 編程語言在操作文件編碼格式的應(yīng)用
  5. Python 中文亂碼問題的分析的具體方案介紹
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2011-07-15 16:26:09

架構(gòu)設(shè)計

2012-01-06 11:13:02

SinatraJava框架

2010-03-11 11:07:37

Python函數(shù)參數(shù)

2009-10-16 09:45:41

Linux內(nèi)核操作系統(tǒng)

2010-02-04 16:14:56

Ubuntu QQ

2009-10-23 17:40:24

VB.NET繪圖方法

2022-03-10 15:54:45

嵌入式開發(fā)多核微控制器技術(shù)

2023-04-26 11:14:11

IT領(lǐng)導(dǎo)者遠程工作

2010-04-19 09:31:44

KDE

2010-04-16 11:39:56

Oracle存儲過程

2010-03-15 16:34:50

Python字典

2023-06-01 07:28:37

自動化業(yè)務(wù)運維

2009-12-01 18:29:56

PHP緩存控制器

2024-06-13 10:05:36

2009-07-17 13:54:51

JDBC存儲過程

2017-06-05 13:53:10

2021-10-13 06:59:03

Python技巧編程

2022-06-27 08:47:15

CIOIT領(lǐng)導(dǎo)者職場考證

2009-07-23 14:39:23

ASP.NET處理

2010-01-08 14:35:58

點贊
收藏

51CTO技術(shù)棧公眾號