Python面向?qū)ο笾K詳解
1.1 導(dǎo)入模塊
- import 模塊名
- form 模塊名import 功能名
- form 模塊名 import *
- import 模塊名 as 別名
- import 模塊名 import 功能名 as 別名
以下用math模塊下的 sqrt 驗(yàn)證
1.1.1 import 模塊名
語(yǔ)法
# 1 導(dǎo)入模塊 import 模塊名 # 推薦使用此種格式 import 模塊名1,模塊名2.... # 不推擠 # 2 調(diào)用 模塊名.功能名()
體驗(yàn)
import math print(math.sqrt(9))
1.1.2 from 模塊名 import 功能名
語(yǔ)法
# 1 導(dǎo)入 from 模塊名 import 功能1,功能2.... # 2 調(diào)用 功能()
體驗(yàn)
from sqrt import math print(sqrt(9))
1.1.3 from …import*
語(yǔ)法
from 模塊名 import*
體驗(yàn)
from math import* print(sqrt(9))
1.1.4 as 定義別名
把復(fù)雜的長(zhǎng)的 不好記的模塊名\功能名, as成簡(jiǎn)單的
語(yǔ)法
# 模塊定義別名 import 模塊名 as 別名 # 功能定義別名 from 模塊名 import 功能 as 別名
體驗(yàn)
import math as m print(m.srqt(9)) from math import srqt as s print(s(9))
代碼
# --*coding:utf-8*-- # 需求 驗(yàn)證math模塊下的 sqrt()開平方計(jì)算 """ 步驟 1 導(dǎo)入math模塊 2 驗(yàn)證sqrt功能 : 調(diào)用該模塊下的sqrt功能 """ # 方法一 : import 模塊名;模塊名.功能 import math print(math.sqrt(9)) # 方法二 :from 模塊名 import 功能,功能...;功能調(diào)用(功能()) from math import sqrt print(sqrt(6)) # 方法三 :from 模塊名 import* ;調(diào)用功能 from math import * print(sqrt(16)) # 方法四-模塊別名: import 模塊名 as 別名;調(diào)用功能 別名.功能 import math as mm print(mm.sqrt(16)) # 方法四-功能別名: from math import sqrt as ss from math import sqrt as ss print(ss(9))
1.2 制作模塊
在Python中,每個(gè)Python文件都可以作為一個(gè)模塊,模塊的名字就是文件名
自定義模塊名必須符合標(biāo)識(shí)符命名規(guī)則
目標(biāo)
- 作用
- 制作步驟和書寫代碼
- 掌握注意事項(xiàng)
為啥要制作模塊:
程序員在開發(fā)中,對(duì)于一些頻繁使用的代碼,進(jìn)行封裝 ,制作成一個(gè)滿足需要的模塊,在之后的工資中再去調(diào)用
1.2.1 定義模塊
新建一個(gè)Python文件,命名my_module1.py,并定義testA函數(shù)
# 此處 : 此模塊相關(guān)的解釋性文字,如 一個(gè)函數(shù) 完成任意兩個(gè)數(shù)字相加 def testA(a,b): print(a+b)
1.2.2 測(cè)試模塊
寫完一個(gè)模塊, 測(cè)試?yán)锩媸欠裼衎ug
在實(shí)際的開發(fā)中, 當(dāng)一個(gè)開發(fā)人員編寫完一個(gè)模塊后, 為了讓模塊能夠在項(xiàng)目中達(dá)到想要的效果, 這個(gè)開發(fā)人員會(huì)自行在py文件中加入一些測(cè)試信息,例如在 my_module1.py中添加測(cè)試代碼.
def testA(a,b): print(a+b) testA(5,6)
此時(shí),無(wú)論當(dāng)前文件,還是其他導(dǎo)入了該模塊的文件, 在運(yùn)行時(shí),都會(huì)執(zhí)行testA函數(shù)的調(diào)用. 特別是 其他函數(shù)調(diào)用是 會(huì)一并調(diào)用了 測(cè)試函數(shù),這是我們不希望看到的.
解決辦法如下:
引入 name 系統(tǒng)變量, 上面的代碼變成
# --*coding:utf-8*--
# 需求 :一個(gè)函數(shù) 完成任意兩個(gè)數(shù)字相加
def testA(a,b):
print(a+b)
# 測(cè)試信息
# text(5,6) # 驗(yàn)證1 這樣會(huì)在其他函數(shù)調(diào)用時(shí),被執(zhí)行
"""
驗(yàn)證2 print(__name__)
測(cè)試 在當(dāng)前函數(shù)下,和被其他文件調(diào)用時(shí),返回結(jié)果:
內(nèi)部 返回 __main__
外部 返回 本函數(shù)名
"""
# 根據(jù) __name__ 特性,做if 判斷
if __name__ == "__main__":
testA(2,5)
"""=====輸出==自身調(diào)用的時(shí)候 執(zhí)行測(cè)試語(yǔ)句=="""
7
1.2.3 外部調(diào)用
# --*coding:utf-8*-- # 導(dǎo)包 import my_module1 # 調(diào)用 模塊名.功能 my_module1.testA(6,12) """==輸出==外部調(diào)用是 不執(zhí)行測(cè)試代碼==""" 18
1.3 模塊定位順序
當(dāng)導(dǎo)入一個(gè)模塊,Python解析器對(duì)模塊位置的搜索順序是 由近及遠(yuǎn)
- 當(dāng)前模塊
- 當(dāng)前沒有, 則搜索在shell變量PYTHONPATH下的每個(gè)目錄
- 還沒有,Python會(huì)查看默認(rèn)路徑(不同的系統(tǒng)不一樣),如 unix下,默認(rèn)路徑為 /usr/local/lib/Python
** PYTHONPATH 安裝程序是的默認(rèn)目錄
注意
- 自己的文件名 不要和已有的模塊名重復(fù), 否則會(huì)導(dǎo)致模塊功能無(wú)法使用
- 使用from 模塊名 import 功能 的時(shí)候, 如果功能名字重復(fù), 誰(shuí)后面 ,誰(shuí)起作用.
1.4 all
目標(biāo)
- 什么是__all__列表
- 作用
- 寫代碼 分析作用 體驗(yàn)
什么是all列表 就是模塊中的一個(gè)變量,取值是一個(gè)列表[]的形式
作用:當(dāng)模塊中有__all__時(shí),如果使用from 模塊名 import * 導(dǎo)入時(shí),只能導(dǎo)入這個(gè)all后面列表的元素
my_module1模塊代碼
___all__=["testA]
def testA():
print("我是testA")
def testB():
print("我是testB")
執(zhí)行結(jié)果是 :
我是testA
如果沒有__all__=[] 變量
執(zhí)行結(jié)果將是: all 所有的
我是testA
我是testB
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python數(shù)據(jù)抓取分析的示例代碼(python + mongodb)
本篇文章主要介紹了python數(shù)據(jù)抓取分析的示例代碼(python + mongodb),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-12-12
pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解
今天小編就為大家分享一篇pytorch torch.nn.AdaptiveAvgPool2d()自適應(yīng)平均池化函數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-01-01
pyinstaller打包后偶爾出現(xiàn)黑窗口一閃而過的問題及解決
這篇文章主要介紹了pyinstaller打包后偶爾出現(xiàn)黑窗口一閃而過的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
詳解利用python-highcharts庫(kù)繪制交互式可視化圖表
本文主要和大家分享一個(gè)超強(qiáng)交互式可視化繪制工具-python-highcharts。python-highcharts就是使用Python進(jìn)行Highcharts項(xiàng)目繪制,簡(jiǎn)單的說(shuō)就是實(shí)現(xiàn)Python和Javascript之間的簡(jiǎn)單轉(zhuǎn)換層,感興趣的可以了解一下2022-03-03

