隨著**量的不斷增多,乙個檔案裡**會越來越長,也不容易維護。為了解決這種問題,我們會進行拆分,並將具備類似的功能放同一檔案中。這樣每個檔案包含的**就相對較少。在python中乙個.py檔案就稱之為乙個模組,英文叫(module)
使用模組的好處如下所示:
模組雖然解決了函式名、變數名和類名等命名衝突,那模組之前也會存在命名衝突的情況,應該怎麼解決?為解決這個模組命名衝突,python引入了按目錄來組織模組的方法,稱為包,英文(package)
舉個例子,現在有兩個py檔案,分別為surpassa.py和surpassb.py,則相應的模組名即為surpassa和surpassb。如果這兩個模組名與其他模組名存在衝突,則可以包來組織模組,使其成為包。方法是選擇乙個頂層包名,如surpass,按以下形式進行存放
surpass
|—— __init__.py
|—— surpassa.py
|—— surpassb.py
在引入包之後,只要頂層的包名沒有衝突,則可以確保模組名不會產生衝突。則相應的模組名也由原來的模組名變更為surpass.surpassa和surpass.surpassb。
1.包的注意事項:每個包目錄中必須存在__init__.py檔案,否則python會將視為普通目錄,而非乙個包。類似這種情況,在乙個包裡面也是可以存在多個目錄,組成多層級的包,示例如下所示:2.__init__.py檔案內容可以為空,也可以有相應的**,其本身也是乙個模組
surpass
|—— __init__.py
|—— surpassa.py
|—— surpassb.py
|—— config
| |—— __init__.py
| |—— surpassc.py
| |—— surpassd.py
|—— web
|—— __init__.py
|—— surpasse.py
|—— surpassf.py
以示例對應的模組名分別如下所示:
第三方庫的安裝,一般使用pip安裝,其形式如下所示:
pip/pip3 install -u 庫名
python自身內建了很多模組,只要安裝完成後,即可以正常呼叫。匯入模組的常見形式如下所示:
import 模組名
import 模組名 as 別名 # 在模組名稱特別長的時候,可以簡化呼叫所輸入的模組名
import 模組名a,模組名b,模組名c,
from 模組名 import 函式名/類名 # 匯入指定模組中的函式或類
from 模組名 import * # 匯入指定模組中的所有內容,但排除以下劃線開頭的變數、函式等
import sys
# 表示將上一層路徑新增到sys.path中,在新增之後,直譯器會搜尋當前模組所在目錄以及sys.path指定的路徑去找需要import的模組
匯入模組需要遵循的規則如下所示:
person.py
class person:
def __init__(self,name,age):
self._name=name
self._age=age
def getperinfo(self):
print(f"name is ,age is ")
mulclass.py
class student:
def __init__(self, name, age,classno):
self._name = name
self._age = age
self._classno=classno
def getperinfo(self):
print(f"name is ,age is ,class no. is ")
class worker:
def __init__(self,name,occupation):
self._name=name
self._occupation=occupation
def getworkerinfo(self):
print(f"name is ,he/she is ")
class teacher():
def __init__(self,name,classno):
self._name=name
self._classno=classno
def getclassno(self):
print(f"teacher's name is ,his/her's class is ")
def testfunc(name):
print(f"hello, ")
main.py
import person
from mulclass import student
from mulclass import testfunc
if __name__ == '__main__':
person=person.person("surpass",28)
person.getpersoninfo()
student=student("surpass",18,"class-1")
student.getstudentinfo()
testfunc("testfunc")
輸出結果如下所示:
python基礎 模組 包
一 模組 1.模組是程式 任何python程式都可以作為模組匯入。程式的儲存也很重要,如果想把程式儲存在c python windows 目錄下,需要告訴直譯器在 尋找模組了。import sys 2.匯入模組 匯入模組只需要一次。import hello 在模組中定義函式 hello python...
Python 庫 包 模組
自定義庫包模組 python目錄結構 庫定義python 的乙個專案 標準庫python 安裝時自帶的庫 第三方庫所有 pythoner 開發經過審核後作為第三方庫 python第三方庫如何尋找 訪問 python 第三方庫官網 自定義庫 專案名 包的概念 包是乙個有層次的檔案目錄結構,由模組和子包...
Python基礎 模組和包
python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 1.1.2.1 import 1.匯入模組 import 模組名 import 模組名1 模組名2.2.呼叫功能 模組名....