主要內容:
1 . from 模組 import 名字
a:執行流程
from my_module import login# my_module 裡的檔案內容
'''name = 'alex'
def login():
print('login',name)
'''def login():print('in my module')
login()
# 執行流程: 先找到my_module這個檔案, 開闢屬於my_module模組的命名空間,執行py檔案.
#知道了要import的login這個名字,哪麼就在本檔案中建立乙個變數login,指向模組命名空間的login函式.
匯入了什麼,就能使用什麼,不匯入的變數不能使用
不匯入並不代表不存在記憶體中,而是沒有建立檔案到模組中其他名字的引用
當模組中引入的方法或者變數和本檔案重名的時候,那麼這個名字只代表最後一次對它賦值的那個方法或者變數.
本檔案中對全域性變數的修改是完全不會影響到模組中的變數的引用.
b:重新命名
from 模組名 import 名字 as 變數
例如: from my_module import login as ll
c: 匯入多個
from 模組名 import 名字1,名字2..
d : from 模組 import * 匯入該模組的所有內容
e : from 模組* 與 __all__之間的聯絡 __all__可以控制*匯入的內容
模組中的內容 __all__可以控制匯入的內容(my_module)
__all__ = ['login']name = 'alex'
def login():
print('login',name)
2 把模組當成指令碼執行:
a : 從本模組反射本模組中的變數, 在編寫py檔案的時候,所有不在函式和類中封裝的內容都應該寫在:
if __name__ == '__main__'
b : 在使用反射自己模組中的內容的時候
import sys
gettatr (sys.module[__name__], 變數名)
不能使用[sys.module['__main__']]
原因 : 當在匯入該模組的檔案中,'_main__'當前執行的是該檔案所在的位址, 而不是模組的位址,因此在反射的時候找不到對應的變數名會報錯.
3 . 模組搜尋路徑
模組沒有匯入之前在什麼地方 : 在硬碟上
安裝python
python整個包的結構不變
他會記錄乙個安裝目錄
其他所有目錄都是都是根據安裝目錄來寫死的.
'c:\\users\\26897\\pycharmprojects\\untitled\\workspace\\day24' #當前執行指令碼所在的目錄
剩餘所有的都是python內建的目錄
內建模組的匯入
第三方模組的匯入
內建模組的匯入和第三方模組的匯入都不需要你操心
自定義模組能否被匯入
看sys.psth當中,是否存在你要匯入的檔案 所在的目錄
24 from 模組 import 名字
主要內容 1 from 模組 import 名字 a 執行流程 from my module import login my module 裡的檔案內容 name alex def login print login name def login print in my module login 執...
Python學習之路 模組詳解及import本質上
1.定義 模組 用來從邏輯上組織python 變數,函式,類,邏輯 實現乙個功能 本質就是.py結尾的python檔案。檔名 test.py,對應的模組名 test 包 用來從邏輯上組織模組的,本質是乙個資料夾或者目錄 必須帶乙個 init py檔案 2.匯入方法 import module nam...
Python包 模組和包匯入詳解(import)
1.模組 module 1.1 模組定義 通常模組為乙個.py檔案,其他可作為module的檔案型別還有 pyo pyc pyd so dll module 可看作乙個工具類,可共用或者隱藏 細節,將相關 放置在乙個module以便讓 更好用 易懂,讓coder重點放在高層邏輯上。module能定義...