模塊(module)
模塊化指將一個(gè)完整的程序分解為一個(gè)一個(gè)小的模塊,通過將模塊組合,來搭建出一個(gè)完整的程序。模塊化具有方便開發(fā)、維護(hù)和復(fù)用的優(yōu)點(diǎn)。在Python中,每個(gè)py文件就是一個(gè)模塊。
引入外部模塊
在一個(gè)模塊中引入外部模塊有兩種方式:import 模塊名
和 import 模塊名 as 模塊別名
。后者可以引入同一模塊多次,但實(shí)例只會(huì)創(chuàng)建一個(gè)。import語句可以在程序的任何位置調(diào)用,但一般情況下,應(yīng)該統(tǒng)一寫在程序開頭。在每個(gè)模塊內(nèi)部都會(huì)有一個(gè)__name__
屬性,通過這個(gè)屬性可以獲取到模塊的名字。__name__
值為__main__
的模塊是主模塊,也是我們直接通過python執(zhí)行的模塊。
引入部分內(nèi)容
也可以只引入模塊中的部分內(nèi)容,語法為from 模塊名 import 變量,變量....
。可以為引入的變量使用別名,語法為from 模塊名 import 變量 as 別名
。
包 (package)
包是由多個(gè)模塊組成的一個(gè)文件夾。當(dāng)一個(gè)模塊的代碼過多時(shí),或需要將一個(gè)模塊分解為多個(gè)模塊時(shí),就需要使用到包。在包中需要一個(gè)__init__.py
文件,這個(gè)文件可以包含有包中的主要內(nèi)容。
示例代碼
以下是一些示例代碼:
# 引入test_module模塊,并指定別名test
import test_module as test
# 訪問模塊中的變量
print(test.a, test.b)
# 創(chuàng)建Person的實(shí)例p
p = test.Person()
print(p.name)
# 只引入模塊中的特定部分
from m import Person,test
# 引入到模塊中所有內(nèi)容,不推薦使用
from m import *
# 為引入的變量使用別名
from m import test2 as new_test2
# 引入包hello中的模塊
from hello import a,b
print(a.c)
print(b.d)
注意:__pycache__
是模塊的緩存文件,可以用來提高程序運(yùn)行的性能。
# 模塊緩存文件
__pycache__ 是模塊的緩存文件。在Python中,代碼在執(zhí)行前需要被解析器轉(zhuǎn)換為機(jī)器碼,然后再執(zhí)行。為了提高程序的運(yùn)行性能,Python會(huì)在第一次編譯后將代碼保存到一個(gè)緩存文件中。下次加載該模塊時(shí),就可以直接加載緩存中編譯好的代碼,而不需要重新編譯。
例子:
# 引入math模塊
import math
# 調(diào)用math模塊中的函數(shù)
print(math.sqrt(16))
# 輸出結(jié)果:4.0
注意:在實(shí)際編寫代碼時(shí),應(yīng)該根據(jù)實(shí)際情況選擇引入模塊的方式,避免引入不必要的內(nèi)容,以減少內(nèi)存占用和提高代碼的可讀性。
以上是關(guān)于模塊和包的相關(guān)內(nèi)容。使用模塊化可以使代碼更加清晰、易于維護(hù)和復(fù)用。同時(shí),包的使用可以將大型程序分解為更小的模塊,便于管理和組織代碼。編寫模塊和包的時(shí)候,要注意命名規(guī)范,并合理選擇引入模塊的方式。
當(dāng)一個(gè)模塊被導(dǎo)入時(shí),Python會(huì)執(zhí)行該模塊中的所有頂級(jí)代碼(即不在任何函數(shù)、類或條件語句中的代碼)。這通常用于初始化模塊中的變量、定義函數(shù)和類等操作。
示例代碼:
# module.py
print("This is a module.")
def greet(name):
print(f"Hello, {name}!")
class Person:
def __init__(self, name):
self.name = name
# main.py
import module
print("This is the main module.")
module.greet("Alice")
p = module.Person("Bob")
print(p.name)
運(yùn)行 main.py
輸出:
This is a module.
This is the main module.
Hello, Alice!
Bob
可以看到,當(dāng) main.py
導(dǎo)入 module
模塊時(shí),先執(zhí)行了 module.py
中的頂級(jí)代碼,然后才繼續(xù)執(zhí)行 main.py
中的代碼。
此外,可以使用 if __name__ == "__main__":
來判斷當(dāng)前模塊是否被直接執(zhí)行。這樣可以使模塊既可以作為獨(dú)立的程序執(zhí)行,又可以被其他模塊導(dǎo)入和使用。
示例代碼:
# module.py
def square(x):
return x * x
if __name__ == "__main__":
# 當(dāng)前模塊被直接執(zhí)行
# 執(zhí)行一些測(cè)試代碼
print(square(5))
print(square(10))
可以單獨(dú)執(zhí)行 module.py
,也可以在其他模塊中導(dǎo)入并使用 square
函數(shù)。當(dāng)作為獨(dú)立程序執(zhí)行時(shí),測(cè)試代碼會(huì)被執(zhí)行;當(dāng)作為模塊導(dǎo)入時(shí),測(cè)試代碼不會(huì)被執(zhí)行。
好的,我將按照要求整理這篇文章,格式為Markdown格式。請(qǐng)稍等片刻。
開箱即用
為了實(shí)現(xiàn)開箱即用的思想,Python中為我們提供了一個(gè)模塊的標(biāo)準(zhǔn)庫。在這個(gè)標(biāo)準(zhǔn)庫中,有很多很強(qiáng)大的模塊我們可以直接使用,并且標(biāo)準(zhǔn)庫會(huì)隨Python的安裝一同安裝。
sys模塊
sys模塊提供了一些變量和函數(shù),使我們可以獲取到Python解析器的信息或者通過函數(shù)來操作Python解析器。我們可以引入sys模塊:
import sys
sys.argv
sys.argv用于獲取執(zhí)行代碼時(shí),命令行中所包含的參數(shù)。該屬性是一個(gè)列表,列表中保存了當(dāng)前命令的所有參數(shù)。例如:
print(sys.argv)
sys.modules
sys.modules用于獲取當(dāng)前程序中引入的所有模塊。modules是一個(gè)字典,字典的key是模塊的名字,字典的value是模塊對(duì)象。我們可以使用pprint模塊對(duì)其進(jìn)行格式化輸出。例如:
import pprint
pprint.pprint(sys.modules)
sys.path
sys.path是一個(gè)列表,列表中保存的是模塊的搜索路徑。例如:
pprint.pprint(sys.path)
sys.platform
sys.platform表示當(dāng)前Python運(yùn)行的平臺(tái)。例如:
print(sys.platform)
sys.exit()
sys.exit()函數(shù)用于退出程序。可以在括號(hào)中添加字符串作為退出時(shí)的提示信息。例如:
sys.exit('程序出現(xiàn)異常,結(jié)束!')
print('hello')
os模塊
os模塊讓我們可以對(duì)操作系統(tǒng)進(jìn)行訪問。我們可以引入os模塊:
import os
os.environ
通過os.environ屬性可以獲取到系統(tǒng)的環(huán)境變量。例如:
pprint.pprint(os.environ['path'])
os.system()
os.system()函數(shù)可以用來執(zhí)行操作系統(tǒng)的命令。例如,可以執(zhí)行dir
命令查看當(dāng)前目錄的文件列表:
os.system('dir')
os模塊中的變量、函數(shù)和類
我們可以在模塊中定義變量、函數(shù)和類,并在其他地方使用。例如:
a = 10
b = 20
_c = 30 # 添加了_的變量,只能在模塊內(nèi)部訪問
def test():
print('test')
def test2():
print('test2')
class Person:
def __init__(self):
self.name = '孫悟空'
測(cè)試代碼
我們可以編寫一些測(cè)試代碼來驗(yàn)證模塊的功能。這部分代碼只有當(dāng)當(dāng)前文件作為主模塊時(shí)才會(huì)執(zhí)行,而當(dāng)模塊被其他模塊引入時(shí)不會(huì)執(zhí)行。我們可以通過__name__
屬性來檢查當(dāng)前模塊是否是主模塊。
if __name__ == '__main__':
test()
test2()
p = Person()
print(p.name)
模塊中的變量和函數(shù)的使用
在模塊中定義的變量和函數(shù)可以在其他地方進(jìn)行使用。例如,假設(shè)我們將上述代碼保存為一個(gè)名為example.py
的模塊文件:
# example.py
a = 10
b = 20
_c = 30
def test():
print('test')
def test2():
print('test2')
class Person:
def __init__(self):
self.name = '孫悟空'
然后,在另一個(gè)Python腳本中,我們可以引入該模塊并使用其中定義的變量和函數(shù):
# main.py
import example
print(example.a)
print(example.b)
example.test()
example.test2()
p = example.Person()
print(p.name)
運(yùn)行main.py
,將會(huì)輸出以下結(jié)果:
10
20
test
test2
孫悟空
這樣,我們就可以在模塊中封裝一些常用的代碼,并在其他地方進(jìn)行復(fù)用。
總結(jié):
- 使用
sys
模塊可以獲取到Python解析器的信息和操作Python解析器。 - 使用
os
模塊可以對(duì)操作系統(tǒng)進(jìn)行訪問,包括獲取系統(tǒng)環(huán)境變量和執(zhí)行系統(tǒng)命令。 - 在模塊中定義的變量、函數(shù)和類可以在其他地方進(jìn)行使用。
- 可以通過
if __name__ == '__main__':
來編寫測(cè)試代碼,只有當(dāng)模塊作為主模塊運(yùn)行時(shí)才會(huì)執(zhí)行。
python精品專欄推薦
python基礎(chǔ)知識(shí)(0基礎(chǔ)入門)
【python基礎(chǔ)知識(shí)】0.print()函數(shù)
【python基礎(chǔ)知識(shí)】1.數(shù)據(jù)類型、數(shù)據(jù)應(yīng)用、數(shù)據(jù)轉(zhuǎn)換
【python基礎(chǔ)知識(shí)】2.if條件判斷與條件嵌套
【python基礎(chǔ)知識(shí)】3.input()函數(shù)
【python基礎(chǔ)知識(shí)】4.列表和字典
【python基礎(chǔ)知識(shí)】5.for循環(huán)和while循環(huán)
【python基礎(chǔ)知識(shí)】6.布爾值和四種語句(break、continue、pass、else)
【python基礎(chǔ)知識(shí)】7.實(shí)操-用Python實(shí)現(xiàn)“文字PK”小游戲(一)
【python基礎(chǔ)知識(shí)】7.實(shí)操-用Python實(shí)現(xiàn)“文字PK”小游戲(二)
【python基礎(chǔ)知識(shí)】8.編程思維:如何解決問題-思維篇
【python基礎(chǔ)知識(shí)】9.函數(shù)的定義和調(diào)用
【python基礎(chǔ)知識(shí)】10.用函數(shù)編寫程序 - 實(shí)操篇
【python基礎(chǔ)知識(shí)】10.用Python實(shí)現(xiàn)石頭剪刀布小游戲-函數(shù)實(shí)操篇
【python基礎(chǔ)知識(shí)】11.如何debug -常見報(bào)錯(cuò)原因及排查思路 - 思維篇
【python基礎(chǔ)知識(shí)】12.類與對(duì)象(一)
【python基礎(chǔ)知識(shí)】12.類與對(duì)象(二)
【python基礎(chǔ)知識(shí)】13.類與對(duì)象(三)
【python基礎(chǔ)知識(shí)】13.類與對(duì)象(四)
【python基礎(chǔ)知識(shí)】14.圖書管理系統(tǒng)的搭建(類與對(duì)象實(shí)操)
【python基礎(chǔ)知識(shí)】15.編碼基礎(chǔ)知識(shí)
【python基礎(chǔ)知識(shí)】16.文件讀寫基礎(chǔ)及操作
【python基礎(chǔ)知識(shí)】16.“古詩默寫題”的python實(shí)現(xiàn)(文件讀寫和編碼-實(shí)操篇)
【python基礎(chǔ)知識(shí)】17.模塊的概念以及如何引入
【python基礎(chǔ)知識(shí)】18.實(shí)操-使用python自動(dòng)群發(fā)郵件
【python基礎(chǔ)知識(shí)】19.產(chǎn)品思維以及流程圖的使用 - 思維篇
【python基礎(chǔ)知識(shí)】20.“午飯吃什么”的python實(shí)現(xiàn)(產(chǎn)品思維-實(shí)操篇)
【python基礎(chǔ)知識(shí)】21.高效偷懶的正確打開方式-畢業(yè)篇
【python文件處理】CSV文件的讀取、處理、寫入
【python文件處理】Excel自動(dòng)處理(使用 openpyxl)
【python文件處理】-excel格式處理文章來源:http://www.zghlxwxcb.cn/news/detail-712536.html
python爬蟲知識(shí)
【python爬蟲】1.爬蟲基礎(chǔ)知識(shí)
【python爬蟲】2.網(wǎng)頁基礎(chǔ)知識(shí)
【python爬蟲】3.爬蟲初體驗(yàn)(BeautifulSoup解析)
【python爬蟲】4.爬蟲實(shí)操(菜品爬取)
【python爬蟲】5.爬蟲實(shí)操(歌詞爬?。?br>【python爬蟲】6.爬蟲實(shí)操(帶參數(shù)請(qǐng)求數(shù)據(jù))
【python爬蟲】7.爬到的數(shù)據(jù)存到哪里?
【python爬蟲】8.溫故而知新
【python爬蟲】9.帶著小餅干登錄(cookies)
【python爬蟲】10.指揮瀏覽器自動(dòng)工作(selenium)
【python爬蟲】11.讓爬蟲按時(shí)向你匯報(bào)
【python爬蟲】12.建立你的爬蟲大軍
【python爬蟲】13.吃什么不會(huì)胖(爬蟲實(shí)操練習(xí))
【python爬蟲】14.Scrapy框架講解
【python爬蟲】15.Scrapy框架實(shí)戰(zhàn)(熱門職位爬?。?br>【python爬蟲】16.爬蟲知識(shí)點(diǎn)總結(jié)復(fù)習(xí)文章來源地址http://www.zghlxwxcb.cn/news/detail-712536.html
到了這里,關(guān)于Python模塊和包:sys模塊、os模塊和變量函數(shù)的使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!