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