網(wǎng)站首頁 編程語言 正文
首先啊,在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的x
4.__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全更新為純小寫形式。
原文鏈接:https://blog.csdn.net/qdPython/article/details/127195891
相關(guān)推薦
- 2022-09-03 .NET使用System.Timers.Timer類實(shí)現(xiàn)程序定時(shí)執(zhí)行_實(shí)用技巧
- 2023-11-22 Linux Ubuntu Linux中建立、復(fù)制、移動(dòng)、刪除文件的命令
- 2022-08-15 apollo配置中心的client端分析
- 2024-02-17 自定義Matplotlib中的顏色映射(cmap)
- 2022-09-23 Windows?10搭建FTP服務(wù)器圖文教程_FTP服務(wù)器
- 2022-05-25 python教程之利用pyautogui圖形自動(dòng)化擊敗重復(fù)性辦公任務(wù)_python
- 2022-05-03 C#面向?qū)ο笤O(shè)計(jì)原則之接口隔離原則_C#教程
- 2022-12-08 React源碼state計(jì)算流程和優(yōu)先級(jí)實(shí)例解析_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支