就是從邏輯上組織python**(變數,函式,類,邏輯:實現乙個功能),本質就是.py結尾的python檔案(檔名是test.py的話,它的對應模組名就是test)
用來從邏輯上元件模組,本質就是乙個目錄(必須帶有乙個__init__.py
檔案)
本質就是把python檔案解釋一遍
本質就是執行該報下的__init__.py
檔案;如果要匯入包下面的模組:需要先導入包,然後從包下的__init__.py
檔案中再匯入該包下的模組
python可以看成是手機–>pip看成應用管家-->模組就是應用軟體
1.系統自帶軟體--》不需要安裝
3.自定義軟體
1.python內建模組:python直譯器啟動自帶的time/random/os/sys
2.pip安裝的模組,pip install jieba
3.自定義模組--》自定義**
4.包(模組)-》未來詳細講
以time為例:
import time
1.開闢記憶體空間,記憶體空間命名為time
2.把time.py中所有**讀入空間,然後執行
3.通過time.方法名使用time模組中的方法
#test.py
import time
import time as t #變數名t指向time模組的命名空間
from time import sleep
from time import sleep,localtime
優點:永不衝突
缺點:每次匯入多輸入幾個字元,非常麻煩
以time裡的sleep為例
from time import sleep
1.開闢記憶體空間,記憶體空間命名為time
2.把time.py中所有**讀入空間,然後執行
3.把sleep()方法讀入import和from import,因此可以直接使用方法名
# *__all__=['']
#test.py
__all__ = ['f1','f2']
def f1():
print(1)
def f2():
print(2)
def f3():
print(3)
from test import *
test.f3() #無法執行
import test
test.f3() # 3
優點:少打幾個字元
缺點:容易衝突
#m1.py
from m2 import y
x = 10
print('m1:',x,y)
#m2.py
from m1 import x
y = 20
print('m2:',x,y)
過程:m1.py --> m2.py --> m1.py ...
結果:x/y在這個過程中一直沒有生成
解決方案一
#m1.py
x = 10
from m2 import y
print('m1:',x,y)
#m2.py
y = 20
from m1 import x
print('m2:',x,y)
# m2: 10 20
# m1: 10 20
# m2: 10 20
過程:m1.py -->10 20 --> m2.py -->10 20--> m1.py --> x = 10 20
解決方案二
# m1.py
def f1():
from m2 import y
print(y)
x = 10
# m2.py
def f1():
from m1 import x
y = 20
# y = 20
過程:f1() --> m2.py --> y = 20
先從記憶體中尋找
from m2 import y
print(y)
import time
time.sleep(10) # 10s內刪除了m2
from m2 import y
print(y)
再從內建中尋找
from time import time
print(time)
然後從自定製尋找
x = 10
最後從環境變數中尋找
作為模組檔案,模組可以有多個
作為執行檔案,執行檔案只有乙個
# m1.py
x = 10
if __name__ == '__main__':
print(x)
# m2.py
import m1
if __name__ == '__main__':
這段**在pycharm裡面只需要打乙個main然後tab即可打出來,不需要乙個字乙個字打
當執行m1時__name__ == '__main__'
所以會輸出x
執行m2時__name__ != '__main__'(if條件不成立)
會報錯
LinuxC 第十五天
靜態庫 靜態庫 要被包含到源程式中的庫 優點 執行速度快 缺點 占用系統資源比較多 使用的場合 對時間要求很高的場合 靜態庫的製作 1 把所有的源程式 c檔案 製作成目標檔案 o 檔案 gcc c mul.c o mul.o gcc c sub.c o sub.o gcc c add.c o add...
Qt第十五天
qwdialogsize.h ifndef qwdialogsize h define qwdialogsize h include namespace ui class qwdialogsize public qdialog endif qwdialogsize hqwdialogsize.cpp...
python第十五天
什麼是模組?一系列功能的集合 定義模組?建立乙個py檔案就是乙個模組,該py檔名就是模組名 怎麼使用模組?在要是用的模組檔案中通過import 模組名 來匯入模組 模組的四種方式?1 編譯執行模組所對應的py檔案,形成對應的pyc檔案 2 產生該模組自己的全域性命名空間 3 在適應該模組的全域性命名...