python 模組詳解 python day 22

2021-08-29 09:48:42 字數 1712 閱讀 7293

第三方模組/擴充套件模組:沒在安裝python直譯器的時候安裝的那些功能

自定義模組:你寫的功能如果是乙個通用的功能,那你就把它當做乙個模組

內建模組:安裝python直譯器的時候跟著裝上的那些方法

import my_module  要匯入乙個py檔案的名字,但是不加.py字尾名

import my_module  模組的名字必須要滿足變數的命名規範

一般情況下 模組都是小寫字母開頭的名字

所有的模組匯入都應該盡量放在這個檔案的開頭

模組的匯入也是有順序的

先導入內建模組

再匯入第三方模組

最後匯入自定義模組

import 的時候發生了什麼

在import的時候命名空間的變換

重新命名 as

一行匯入多個模組

from import 的時候發生了什麼 仍然相當於執行了整個py檔案

在import的時候命名空間的變換

重新命名 as

一行匯入多個名字 匯入了什麼 就能使用什麼 不匯入的變數 不能使用 不匯入並不意味著不存 而是沒有建立檔案到模組中其他名字的引用

from 模組 import *

* 和 __all__ 的相關性 __all__可以控制*匯入的內容

from my_module import *

login()

from my_module import name

print(name)

if __name__ == '__main__':

所有不需要呼叫就能執行的內容

import sys

getattr(sys.modules[__name__],'要反射的變數名')

模組沒匯入之前在哪兒? 在硬碟上

安裝python

python整個包的結構不變

它會記錄乙個安裝目錄

其他所有目錄都是根據安裝目錄來寫死的

除了你當前執行的指令碼所在的目錄和pycharm在你開啟專案的時候給你新增進來的專案根目錄

剩餘所有都是python內建的目錄

內建模組的匯入

第三方模組的匯入

內建模組的匯入和第三方模組的匯入都不需要你操心了

自定義的模組能否被匯入

看sys.path當中 是否存在你要匯入的檔案 所在的目錄

總結:模組的搜尋路徑全部儲存在sys.path列表中,匯入模組的順序,是從前到後找到乙個符合條件的模組就立即停止不再向後尋找

如果要匯入的模組和當前執行的檔案同級,直接匯入即可

如果要匯入的模組和當前執行的檔案不同級,需要把要匯入模組的絕對路徑新增到sys.path列表中

python的執行

解釋 - 編譯

當乙個檔案作為乙個指令碼被匯入的時候

就會在這個檔案所在的目錄的__pycache__下生成乙個編譯好的檔案

為了之後匯入這個檔案的時候直接讀這個編譯好的pyc檔案就可以

可以節省一些匯入時候的時間

在模組的匯入中 不要產生迴圈引用問題

如果發生迴圈匯入了

就會發現明明寫在這個模組中的方法,確偏顯示找不到

python模組詳解

1.模組內容 模組可以包含可執行語句以及函式定義,可執行語句只有在第一次import或當作指令碼直接執行時才會執行。每個模組有自己的私有符號表,所以不會造成不同模組之間的變數汙染。2.匯入模組 模組匯入的三種方式 3.執行模組 執行的兩種方式 4.模組搜尋路徑 既然要匯入模組,直譯器就需要查詢匯入的...

python模組詳解 hashlib

用於加密相關的操作,在python3中替代了md5和sha模組,主要提供sha和md5演算法。md5import hashlib m hashlib.md5 呼叫md5方法 m.update b hello print m.digest b x8b x1a x99s xc4a x12 x96 xa8...

python模組詳解 shelve

shelve模組是乙個簡單的k,v 將記憶體資料通過檔案持久化的模組,可以持久化任何pickle可以支援的python資料。簡單的說對 pickle的更上一層的封裝。寫檔案import shelve d shelve.open test4 這個檔案不用存在,執行自動生成 name hello chi...