python模塊導(dǎo)入方式淺析步驟
首先啊,在python中我們熟知的py文件就是一個(gè)模塊,也就是換言之以py結(jié)尾的Python源代碼文件都是一個(gè)模塊我就簡單概括一下了直接上代碼
1.模塊的使用
使用模塊里的工具前需要導(dǎo)入模塊,
模塊的導(dǎo)入方式之import·······
單個(gè):
import 模塊名
多個(gè):
import 模塊1
import 模塊2
import 模塊1,模塊2(一般不推薦使用)(多個(gè))
代碼示范:
比方說你有一個(gè)py文件我們暫且叫他測試文件cs.py
#文件名:cs.py
x='一定要努力'
def get():
print(x)
def change():
global x
x=0
class Foo:
def func(self):
print('不然變垃圾')
2.導(dǎo)入模塊并使用
要想在另外一個(gè)py文件中引用cs.py中的功能,需要使用import cs,首次導(dǎo)入模塊會(huì)做三件事:
1、執(zhí)行源文件代碼
2、產(chǎn)生一個(gè)新的名稱空間用于存放源文件執(zhí)行過程中產(chǎn)生的名字
3、在當(dāng)前執(zhí)行文件所在的名稱空間中得到一個(gè)名字cs,該名字指向新創(chuàng)建的模塊名稱空間,若要引用模塊名稱空間中的名字,需要加上該前綴,如下
代碼示例:
"""導(dǎo)入cs模塊""" import cs """引用cs模塊點(diǎn)中的x變量并重新賦值給當(dāng)前名稱空間中的zqh,zqh就具備了cs模塊中x的值""" zqh = cs.x print(zqh) """ 打印結(jié)果:一定要努力""" """調(diào)用cs的get函數(shù)""" cs.get() """調(diào)用cs的change函數(shù)""" cs.change() """使用模塊cs的類Foo來實(shí)例化,進(jìn)一步可以執(zhí)行obj.func()""" obj = cs.Foo() obj.func()
注意:加上cs.作為前綴就相當(dāng)于指名道姓地說明要引用cs.py名稱空間中的名字,所以肯定不會(huì)與當(dāng)前執(zhí)行文件所在名稱空間中的名字相沖突,并且若當(dāng)前執(zhí)行文件的名稱空間中存在x,執(zhí)行cs.get()或cs.change()操作的都是源文件中的全局變量x。
3.模塊的導(dǎo)入方式之from-import 語句
既然他們都是導(dǎo)入模塊的語句他們有何不同呢可能你們或許會(huì)有這個(gè)疑問
from…import…與import語句基本一致,唯一不同的是:使用import cs導(dǎo)入模塊后,引用模塊中的名字都需要加上cs.作為前綴,而使用from cs import x,get,change,Foo則可以在當(dāng)前執(zhí)行文件中直接引用模塊cs中的名字,還有這種:from cs import * 把cs中所有的名字都導(dǎo)入到當(dāng)前執(zhí)行文件的名稱空間中,在當(dāng)前位置直接可以使用這些名字
代碼示例
cs.py:
x='悟空'
def get():
print(x)
def change():
global x
x='b.py的x'
class Foo:
def func(self):
print('不然變垃圾')
change()
aa=Foo()
aa.func()
get()
a.py:
"""導(dǎo)入cs模塊,并且導(dǎo)入cs模塊中的方法導(dǎo)入當(dāng)前名稱空間"""
from cs import get,change,x
x='a.py的x'
"""直接使用模塊cs中的x賦值給zqh"""
zqh=x
"""直接使用測試文件中的get()函數(shù)"""
get()
"""#即便是當(dāng)前有文件有重名的x,修改的仍然是源文件中的x"""
change()
打印結(jié)果:
不然變垃圾
b.py的x
b.py的x4.__all__變量用來控制*
模塊的編寫者可以在自己的文件中定義__all__變量用來控制*代表的意思
""" 該列表中所有的元素必須?。?!是字符串類型,每個(gè)元素!對應(yīng)!cs.py中的一個(gè)名字"""
'''
學(xué)習(xí)中遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流群:711312441
尋找有志同道合的小伙伴,互幫互助,群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書!
'''
cs.py:
__all__=['x','get','change']
x='悟空'
def get():
print(x)
def change():
global x
x='b.py的x'
class Foo:
def func(self):
print('不然變垃圾')
a.py:
"""這樣我們在另外一個(gè)文件中使用*導(dǎo)入時(shí),就只能導(dǎo)入__all__定義的名字了"""
from cs import *
"""__all__列表存在get可用"""
print(get())
"""__all__列表存在change可用"""
print(change())
"""__all__列表存在x可用"""
print(x)
"""__all__列表不存在Foo不可用"""
aaa=Foo() #報(bào)錯(cuò)NameError: name 'Foo' is not defined導(dǎo)入語法as(起別名)
import cs as zqh #為導(dǎo)入的模塊cs在當(dāng)前位置起別名zqh,以后再使用時(shí)就用這個(gè)別名zqh zqh.x zqh.get()
還可以為為導(dǎo)入模塊的某一個(gè)名字起一個(gè)別名
例如:
from cs import get as cs_get cs_get()
5.總結(jié)
在Python中模塊也屬于第一類對象,可以進(jìn)行賦值、以數(shù)據(jù)形式傳遞以及作為容器類型的元素等操作。
模塊名應(yīng)該遵循小寫形式,標(biāo)準(zhǔn)庫從python2過渡到python3做出了很多這類調(diào)整,比如ConfigParser、Queue、SocketServer全更新為純小寫形式。
到此這篇關(guān)于python模塊導(dǎo)入方式淺析步驟的文章就介紹到這了,更多相關(guān)python模塊導(dǎo)入內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python數(shù)據(jù)處理 根據(jù)顏色對圖片進(jìn)行分類的方法
今天小編就為大家分享一篇python數(shù)據(jù)處理 根據(jù)顏色對圖片進(jìn)行分類的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
使用Python模擬操作windows應(yīng)用窗口詳解
在日常工作中,我們經(jīng)常遇到需要進(jìn)行大量重復(fù)性任務(wù)的情況,這篇文章將介紹如何使用 Python 模擬操作記事本,感興趣的小伙伴可以了解下2025-02-02
python+matplotlib實(shí)現(xiàn)禮盒柱狀圖實(shí)例代碼
這篇文章主要介紹了python+matplotlib實(shí)現(xiàn)禮盒柱狀圖實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python提取PDF內(nèi)容的方法(文本、圖像、線條等)
這篇文章主要介紹了Python提取PDF內(nèi)容的方法(文本、圖像、線條等),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Python 內(nèi)置函數(shù)之隨機(jī)函數(shù)詳情
這篇文章主要介紹了Python 內(nèi)置函數(shù)之隨機(jī)函數(shù),文章將圍繞Python 內(nèi)置函數(shù)、隨機(jī)函數(shù)的相關(guān)資料展開內(nèi)容,需要的朋友可以參考一下,希望對你有所幫助2021-11-11

