天天看點

斤斤計較之Python:子產品1、定義 harry.py2、關于sys、dir()3、“編譯的” Python 檔案.pyc

斤斤計較之Python:子產品

  • 1、定義 harry.py
  • 2、關于sys、dir()
  • 3、“編譯的” Python 檔案.pyc

1、定義 harry.py

def print_name(name):

print(‘Hello’ ,name, ‘.My lord.’ )

我們定義了一個簡單的子產品,使用import harry即可調用,也可以使用from harry import print_name

harry.print_name(‘Harry’) # 輸出 ‘Hello Harry. My lord.’

使用:from harry import * # 導入子產品,可以導入harry中的所有的不包括以下劃線(_)函數名開頭命名的函數

實時導入變更單的子產品有一個特定的函數:import imp; imp.reload(harry) # 當harry變化了之後使用此指令可以重新導入變更後的子產品

使用harry.__name__會列印出子產品的名稱,也就是harry,當harry子產品作為主程式運作時此時的__name__為 mian,是以使用:

if name==‘main’: # 隻有在子產品本身執行的時候才會執行此語句下的程式塊

注意:子產品在定義的過程中不應該與函數名相同,并且自己定義的函數腳本名也不應該與使用的子產品名相同

2、關于sys、dir()

函數在調用的過程中會預設加載的路徑有:

輸入腳本(或者目前目錄)

PYTHONPATH

安裝目錄

注意路徑是可以使用指令添加的:sys.path.append(‘dirname’)

在互動模式下可以更改輸出時的顯示的主提示符 預設sys.ps1為 ‘>>>’ ,可以使用sys.ps1 = ‘Harry>>>’,進行更改。

在互動模式下可以更改輸出時的顯示的主提示符 預設sys.ps2 為 ‘…’,可以使用sys.ps2 = ‘****’,進行修改。

使用dir()能夠列出某子產品的所有它的定義,它傳回一個字元串類型的存儲清單,包括變量,子產品,函數等資訊

import builtins dir(builtins) # 列舉所有内置子產品

3、“編譯的” Python 檔案.pyc

Python 會在 pycache 目錄下以 module.version.pyc 名字緩存每個子產品編譯後的版本,通常會包含 Python 的版本号。

若要支援沒有源檔案(隻有編譯版)的釋出,編譯後的子產品必須在源目錄下,并且必須沒有源檔案的子產品。

在 Python 指令行中使用 -O 或者 -OO。-O 參數删除了斷言語句,-OO 參數删除了斷言語句和 doc 字元串,生成.pyo檔案。

注意:編譯前後的檔案在執行速度上是相同的,但是編譯後的問價加載速度更快。