第十五天 模組

2022-09-13 10:33:10 字數 2845 閱讀 8886

就是從邏輯上組織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 在適應該模組的全域性命名...