Python學習筆記 模組和包的使用

2021-10-03 04:57:49 字數 2908 閱讀 5170

可以認為模組是乙個工具箱,裡面提供各種各樣的工具

變數,函式,類都可以定義在模組中。

系統模組

系統給出的,可以直接使用的模組

自定義模組

使用者寫的乙個.py檔案就是乙個模組

匯入和使用模組

# 匯入:import 模組名  -->  匯入整個模組,此時整個目標模組被完整執行一遍

import modulex

# 使用: 模組名.變數名/類名/函式名

modulex.func(

)cls1 = modulex.cls1(

)print

(modulex.value1)

# 匯入:from 模組名 import 變數名,類名,函式名  -->  匯入模組中的幾樣

from modulex import value1,func,cls1

# 使用:直接使用

func(

)cls1 = cls1(

)print

(value1)

# 匯入:from 模組名 from *  -->  匯入模組中全部內容

from modulex import

*# 使用:直接使用

func(

)cls1 = cls1(

)print

(value1)

限制執行部分**

匯入整個模組時,目標模組會被完整執行。如果目標模組中有不需要被執行的**,可以用以下方法加以限制

# 需要在呼叫時可執行的**塊

if __name__==

'__main__'

:# 需要僅在本模組執行的**塊

__name__:在本模組中呼叫,返回結果為__main__;如果在其他模組中呼叫,返回結果為模組名

包是用來對模組進行組織和收納的工具;把模組放進就像把工具箱放進收納櫃一樣

python中包和資料夾的異同

目錄中有__init__.py檔案的叫包,沒有的叫資料夾

利用包可以避免專案中模組名的混淆和衝突

如果有包,就先載入包(執行__init__.py檔案,只執行一次)

匯入和使用包

# 匯入模組中所有內容(即使是同乙個包,也要寫包名)

import 包名.模組名

from 包名.模組名 import

*# 使用:

# import方式匯入

包名.模組名.方法名(

)# from方式匯入

方法名(

)

萬用字元 *

該萬用字元會將模組除受限制的內容外的所有內容進行匯入

限制匯入列表:制定乙個列表,當使用萬用字元時僅匯入該列表載明的內容

__all__ =

['func1'

,'class1'

,'value1'

]# 此時使用萬用字元,僅匯入這三樣內容

value1 =

1value2 =

2def

func1()

:pass

deffunc2()

:pass

class

class1

:pass

class

class2

:pass

init 檔案

可以認為該檔案是魔術的,只要匯入包就會執行此模組,且只執行一次。

該檔案中可以定義一些函式,變數或者類,在匯入包的時候匯入或執行

也可以單純匯入init中的函式,變數或者類,也可以在init檔案中呼叫包中的模組。其萬用字元*也可以受到限制匯入列表的控制。

from 包名 import

*

我們常常可以在不同的包跟模組間互相呼叫,也因此常常會陷入迴圈匯入的陷阱。

'''

如何陷入迴圈匯入的陷阱

'''from package2.module2 import func2

deffunc1()

:print

('package1.func1'

) func2(

)# package2.module2

from package1.module1 import func1

deffunc2()

:print

('package2.func2'

) func1(

)

重構**

在**量少的時候可以選擇重構**以解決迴圈匯入的問題

將匯入語句後置

將匯入語句放到呼叫的地方,在某些情況下還可置於末尾

# package1.module1

deffunc1()

:print

('package1.func1'

)from package2.module2 import func2

func2(

)# package2.module2

deffunc2()

:print

('package2.func2'

)from package1.module1 import func1

func1(

)

Python學習筆記 模組和包

4.pyc檔案 2 包 package 1.模組的概念 2.模組的兩種匯入方式 1.import 匯入 import 模組名1使用 as 可以指定模組的別名 import 模組名1 as 模組別名 使用 as 給模組名起 別名 import hm 01 測試模組1 as dogmodule impo...

Python學習筆記(七) 模組和包

1.將 分拆放入多個py檔案,即多個模組,好處 同乙個名字的變數互不影響 2.同名模組放入不同包中 3.包就是資料夾,模組就是 py檔案,且包可以有多級 4.區分包和普通目錄 包下面有個 init py,每層必須要有 import 模組名 呼叫時必須通過模組名來呼叫相關函式,不存在函式名衝突 fro...

python學習 模組和包

模組是python程式架構的核心概念 語法 import匯入 import 模組名1,模組名2注意雖然上邊的也行,但是在pep8規範中要求在匯入模組時,每個匯入應該獨佔一行 import 模組名1 import 模組名2 import 模組名1 as 模組別名這裡需要說的是模組別名使用大駝峰命名法 ...