婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python 關于模塊和加載模塊的實現

Python 關于模塊和加載模塊的實現

熱門標簽:400電話 申請 條件 北京外呼電銷機器人招商 crm電銷機器人 南京crm外呼系統排名 鄭州智能外呼系統中心 賓館能在百度地圖標注嗎 汕頭電商外呼系統供應商 云南地圖標注 電銷機器人 金倫通信

一.導入模塊

模塊(Modules)

模塊就是Python程序,任何Python程序都可以作為模塊

代碼的可重用性,只要編程過程中需要用到該模塊中的某個功能(由變量、函數、類實現),直接在程序中導入該模塊即可使用該功能

封裝特性的結構:

諸多容器,列表、元組、字符串、字典等都是對數據的封裝
函數是對 Python 代碼的封裝
類是對方法和屬性的封裝,是對函數和數據的封裝

模塊,可以理解是對代碼更高級的封裝,把能夠實現某一特定功能的代碼編寫在同一個.py 文件中,并將其作為一個獨立的模塊,還能有效避免函數名和變量名發生沖突

當程序重復導入同一個模塊時,Python 只會導入一次

import

import 模塊名1 [as 別名1], 模塊名2 [as 別名2],…

會導入指定模塊中的所有成員(包括變量、函數、類等),需要使用模塊中的成員時,需用該模塊名(別名)作為前綴,否則解釋器會報錯

[] 部分,可以使用,也可以省略

sys模塊下的argv變量用于獲取運行程序的命令行參數,argv[0]用于獲取當前 程序的存儲路徑

import sys #導入sys整個模塊
print(sys.argv[0]) # 用sys模塊內的成員時,必須添加模塊名作為前綴
C:/Users/Administrator/Desktop/2021-1-14/模塊.py

導入整個模塊時,可以為模塊指定別名

import sys as s # 導入sys整個模塊,指定別名為s
print(s.argv[0]) # 使用sys模塊別名s作為前綴來訪問模塊中的成員
C:/Users/Administrator/Desktop/2021-1-14/模塊.py

可以一次導入多個模塊,多個模塊之間用逗號隔開

import sys,os # 導入sys、os兩個模塊
print(sys.argv[0]) # 使用模塊名作為前綴來訪問模塊中的成員
print(os.sep) # os模塊的sep變量代表平臺上的路徑分隔符
C:/Users/Administrator/Desktop/2021-1-14/模塊.py
\

導入多個模塊時,也可以為模塊指定別名

import sys as s,os as o # 導入模塊,并分別為模塊指定別名
print(s.argv[0]) # 使用模塊別名作為前綴來訪問模塊中的成員
print(o.sep)
C:/Users/Administrator/Desktop/2021-1-14/模塊.py
\

from…import

from 模塊名 import 成員名1 [as 別名1],成員名2 [as 別名2],…

只會導入模塊中指定的成員,而不是全部成員,當程序中使用該成員時,無需加任何前綴,直接使用成員名(或別名)

[] 部分,可以使用,也可以省略

用from...import來導入指定成員

from sys import argv # 導入sys模塊的argv成員
print(argv[0]) # 直接使用成員名訪問
C:/Users/Administrator/Desktop/2021-1-14/模塊.py

導入sys模塊中的 argv 成員,可在程序中直接使用 argv 成員,無須使用任何前綴

導入模塊成員時,為成員指定別名

from sys import argv as v # 導入sys模塊的argv成員,為其指定別名v
print(v[0]) # 直接使用成員的別名訪問
C:/Users/Administrator/Desktop/2021-1-14/模塊.py

form...import 導入模塊成員時,可一次導入多個成員

from sys import argv, winver # 導入sys模塊的argv,winver成員
print(argv[0]) # 直接使用成員名訪問
print(winver)
C:/Users/Administrator/Desktop/2021-1-14/模塊.py
3.4

sys模塊的winver成員記錄了該 Python 的版本號

一次導入多個模塊成員時,可使用 as 關鍵字為成員指定別名

from sys import argv as v, winver as wv # 導入sys模塊的成員,并為其指定別名
print(v[0]) # 直接使用成員的別名訪問
print(wv)
C:/Users/Administrator/Desktop/2021-1-14/模塊.py
3.4

不推薦使用 from 模塊 import * 導入模塊所有成員

導入指定模塊內的所有成員存在潛在的風險,可能會出現同名成員

可通過別名來區分兩個模塊中的同名成員

__import __()

模塊是代碼文件,要求其文件名要符合操作系統的命名規則,如果模塊名中出現空格或數字開頭,無法使用 import 引入

如果模塊中包含空格或以數字開頭,需要使用__import__() 內置函數引入模塊

__import__("demo text")

__import__("1demo")

使用import()函數要以字符串的方式將模塊名引入,否則會報SyntaxError錯誤

二.自定義模塊

定義簡單的模塊(編寫在 demo.py 文件中)

name = "youchanwill"
add = "you.com"
print(name,add)
def say():
 print("自定義模塊")
class test:
 def __init__(self,name,add):
  self.name = name
  self.add = add
 def say(self):
  print(self.name,self.add)

為了檢驗模板中代碼的正確性,需要為其設計一段測試代碼

say()
test1 = test("you","you.net")
test1.say()

在同一文件夾下新建一個test.py文件,使用 import 語句導入 demo.py

import demo #用import 語句導入時,只需要使用該模板文件的名稱
youchanwill you.com
自定義模塊 #測試代碼也被執行
you you.net 

其它程序以引入的方式執行模板文件,測試代碼不應該被執行,可用__name__ 變量做修改

當直接運行一個模塊時,__name__變量的值為__main__,而模塊被導入其他程序中并運行該程序時,處于模塊中的__name__變量的值就變成了模塊名

可在調用測試函數時增加判斷,當 __name__ =='__main__' 時才調用測試函數

修改 demo.py 模板文件中的測試代碼:

if __name__ == '__main__':
 say()
 test1 = test("you","you.net")
 test1.say()

修改后運行 test.py 文件時

import demo
youchanwill you.com

執行的是模板文件中的輸出語句,測試代碼并未執行

說明文檔

自定義模塊添加說明文檔,和函數或類的添加方法相同,在模塊開頭的位置定義一個字符串

可以通過模板的 __doc__ 屬性,來訪問模板的說明文檔

import demo
print(demo.__doc__)
youchanwill you.com

這是說明文檔

三.加載模塊

環境變量

根據PYTHONPATH環境變量的值來確定到哪里去加載模塊

PYTHONPATH環境變量的值是多個路徑的集合,會依次搜索PYTHONPATH 環境變量所指定的多個路徑,從中找到程序想要加載的模塊

在 Windows 平臺上設置環境變量

右擊桌面上的“計算機”圖標,單擊“屬性”菜單項,系統顯示“控制面板\所有控制面板項\系統”窗口,單擊該窗口左邊欄中的“高級系統設置”鏈接,出現“系統屬性”對話框

單擊“高級” Tab 頁中的“環境變量”,對于當前用戶而言,設置用戶變量和系統變量的效果大致相同,系統變量的路徑排在用戶變量的路徑之前

在“變量名”內輸入 PYTHONPATH,表明將要建立 的環境變量;在“變量值”內輸入 .;d:\python_ module,就是該環境變量的值,該值包含兩條路徑

第一條路徑為一個點(.),代表當前路徑,表明當運行 Python 程序時,總能從當前路徑加載模塊

第二條路徑為 d:\python_ module,表明當運行 Python 程序時,總能從 d:\python_ module 加載模塊

成功設置了環境變量后,只要把定義的模塊放在與當前運行程序相同的路徑(或d:\python_ module 路徑),該模塊就能被成功加載

在 Linux 上設置環境變量

啟動 Linux 的命令行界面,在 home 路徑下輸入:

ls - a

Linux 平臺的環境變量通過 .bash_profile 文件設置,在該文件中添加 PYTHONPATH 環境變量

PYTHONPATH=.:/home/you/python_module #you是系統的登錄名

Linux 多個路徑之間以冒號(:)作為分隔符

完成變量值的設置后,在 .bash_profile 文件的最后添加導出 PYTHONPATH 變量的語句

export PYTHONPATH

運行該文件,使在文件中設置的 PYTHONPATH 變量值生效

可選擇重新登錄Linux 平臺,或輸入source .bash_profile

成功設置了環境變量后,只要把定義的模塊放在與當前運行程序相同的路徑(或/home/yeeku/python_module 路徑),該模塊就能被成功加載

默認的模塊加載路徑

安裝通用性模塊,這種模塊應該直接安裝在 Python 內部,可借助Python默認的模塊加載路徑

通常情況下,應將Python的擴展模塊添加在 lib\site-packages 路徑下,專門用于存放擴展模塊和包

將之前的demo.py文件復制在 lib\site-packages 路徑下

'''
這是說明文檔
'''
name = "youchanwill"
add = "you.com"
print(name,add)
def say():
 print("自定義模塊")
class test:
 def __init__(self,name,add):
  self.name = name
  self.add = add
 def say(self):
  print(self.name,self.add)
if __name__ == '__main__':
 say()
 test1 = test("you","you.net")
 test1.say()

可直接在Python交互式解釋器中測試該模塊

>>> import demo
youchanwill you.com
>>> print(demo.__doc__)

這是說明文檔

>>>
第一行代碼用于導入demo模塊;第二行代碼用于查看demo模塊的文檔,輸出該模塊開始定義的文檔內容

導入模塊的本質

import demo 導入模塊的本質是將 demo.py 中的全部代碼加載到內存并執行
將整個模塊內容賦值給與模塊同名的變量,該變量的類型是 module,在該模塊中定義的所有程序單元都相當于該 module 對象的成員

from demo import name 導入模塊中成員的本質是將 demo.py 中的全部代碼加載到內存并執行
只導入指定變量、函數等成員單元,不會將整個模塊導入

在導入模塊后,在模塊文件所在目錄下看到一個名為“__pycache__”的文件夾
Python 為每個模塊都生成一個 *.cpython-36.pyc 文件,該文件是為模塊編譯生成的字節碼,用于提升該模塊的運行效率

四.__all__變量

向文件導入某個模塊時,導入的是該模塊中那些名稱不以下劃線(單下劃線、雙下劃線)開頭的變量、函數和類

如果不想模塊文件中的某個成員被引入到其它文件中使用,可以在其名稱前添加下劃線

新建demo.py文件

def test1():
 print("you")
def test2():
 print("chan")
def test3():
 print("will")

在新建的test.py文件中導入

from demo import *
test1()
test2()
test3()
you
chan
will

如果 demo.py 模塊中的 test1() 函數不想讓其它文件引入,只需將其名稱改為 _test1() 或者 __test1()

def _test1():
 print("you")

NameError: name 'test1' is not defined

__all__ 變量,該變量的值是一個列表,存儲的是當前模塊中一些成員(變量、函數或者類)的名稱

通過在模塊文件中設置 __all__ 變量,當其它文件以“from 模塊名 import *”的形式導入該模塊時,該文件中只能使用 __all__ 列表中指定的成員

只有以“from 模塊名 import *”形式導入的模塊,當該模塊設有 __all__ 變量時,只能導入該變量指定的成員,未指定的成員無法導入

def test1():
 print("you")
def test2():
 print("chan")
def test3():
 print("will")
__all__ = ["test1","test2"]

from demo import *
test1()
test2()
test3()
you
chan
NameError: name 'test3' is not defined

__all__ 變量僅限于在其它文件中以“from 模塊名 import *”的方式引入

import 模塊名 的形式導入模塊,可以通過模塊名前綴(別名)來調用模塊內的所有成員(除了以下劃線開頭命名的成員),__all__變量的設置無效

from 模塊名 import 成員 導入指定成員,__all__變量的設置無用

到此這篇關于Python 關于模塊和加載模塊的實現的文章就介紹到這了,更多相關Python 模塊和加載模塊內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Python動態加載模塊的3種方法
  • Python實現動態加載模塊、類、函數的方法分析
  • 跟老齊學Python之模塊的加載
  • Python重新加載模塊的實現方法
  • Python模塊的加載講解
  • Python自動重新加載模塊詳解(autoreload module)
  • Python之inspect模塊實現獲取加載模塊路徑的方法
  • Python如何重新加載模塊
  • Python新手如何理解循環加載模塊
  • Python中的模塊加載解析總結

標簽:昆明 文山 梅州 懷化 錫林郭勒盟 西寧 石家莊 浙江

巨人網絡通訊聲明:本文標題《Python 關于模塊和加載模塊的實現》,本文關鍵詞  Python,關于,模塊,和,加載,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python 關于模塊和加載模塊的實現》相關的同類信息!
  • 本頁收集關于Python 關于模塊和加載模塊的實現的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    青草av.久久免费一区| 日韩三级免费观看| 成人免费毛片高清视频| 成av人片一区二区| 欧美精品一区二区三区蜜桃| 欧美激情中文字幕一区二区| 婷婷久久综合九色综合绿巨人| 久久aⅴ国产欧美74aaa| 欧美一区二区人人喊爽| 青青青爽久久午夜综合久久午夜| 色哟哟一区二区三区| 国产精品免费久久| 高清视频一区二区| 日韩伦理电影网| 国产成人精品亚洲午夜麻豆| 国产清纯白嫩初高生在线观看91 | 成人短视频下载 | 成人av片在线观看| 国产精品午夜电影| 91丨porny丨国产| 天天做天天摸天天爽国产一区| 91精品国产综合久久久久久漫画| 蜜桃一区二区三区四区| 久久久影院官网| av一区二区不卡| 免费观看一级欧美片| 国产精品毛片大码女人| 91.xcao| 成人免费va视频| 久久激五月天综合精品| 亚洲一二三四久久| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 秋霞av亚洲一区二区三| 国产精品毛片高清在线完整版| 欧美精品乱码久久久久久| 不卡在线观看av| 成人毛片在线观看| av中文字幕不卡| 成人性生交大片免费看视频在线 | 韩国成人在线视频| 日韩成人午夜精品| 亚洲成人免费视| 亚洲成人激情自拍| 亚洲综合一区二区精品导航| 一区二区三区欧美在线观看| 中文字幕中文字幕一区二区| 中文字幕欧美三区| 亚洲人成精品久久久久| 亚洲在线中文字幕| 一区二区三区免费网站| 亚洲资源中文字幕| 美洲天堂一区二卡三卡四卡视频| 日韩av一区二| 国产精品456| 91免费版pro下载短视频| 色婷婷激情一区二区三区| 欧美日韩在线观看一区二区| 欧美视频在线不卡| 久久色中文字幕| 欧美日韩国产高清一区| 日韩一区二区三区电影| 国产日韩欧美精品一区| 一区二区三区精品视频在线| 蜜臀久久99精品久久久久久9| 国产一区 二区| 欧美日韩成人综合天天影院| 2024国产精品视频| 亚洲444eee在线观看| 成人免费福利片| 国产日韩欧美电影| 国产乱淫av一区二区三区| 欧美午夜影院一区| 国产农村妇女毛片精品久久麻豆| 亚洲一区二区在线观看视频 | 亚洲色图欧美偷拍| 国产精品综合二区| 日韩欧美国产一区二区三区 | 蜜臀av一区二区在线免费观看 | 99久久er热在这里只有精品15| 欧美人体做爰大胆视频| 亚洲人吸女人奶水| 99国产精品久| 亚洲欧美色一区| 91官网在线免费观看| 亚洲免费在线播放| 欧美精品久久久久久久多人混战 | 色综合久久久久久久久| 国产精品国产三级国产普通话99| 国精产品一区一区三区mba桃花| 欧美一级在线视频| 国产成人欧美日韩在线电影| 亚洲精品第一国产综合野| 色综合久久精品| 美国十次了思思久久精品导航| 久久久九九九九| 欧美在线999| 久久国产精品区| 亚洲人午夜精品天堂一二香蕉| 日韩一区二区三区在线观看| 国产精品99久久久| 亚洲国产视频在线| 国产视频一区二区三区在线观看| 欧美日韩在线三级| 国产电影精品久久禁18| 久久精品国产久精国产爱| 亚洲精品成人在线| 国产精品无码永久免费888| 91精品视频网| 欧美日韩亚洲综合在线 | 91国内精品野花午夜精品| 美脚の诱脚舐め脚责91| 亚洲欧洲日产国码二区| 精品免费99久久| 日韩欧美激情一区| 日韩视频一区二区| 欧美视频中文字幕| 欧美性大战久久久| 欧美日韩在线播放| 欧美午夜精品一区| 欧美亚洲一区二区在线| 一本大道久久a久久综合| 成人白浆超碰人人人人| 国内成+人亚洲+欧美+综合在线| 极品少妇一区二区三区精品视频| 麻豆精品一二三| 国产黄色精品网站| 99国产精品国产精品毛片| 色天使色偷偷av一区二区| 欧美吞精做爰啪啪高潮| 91精品婷婷国产综合久久竹菊| 欧美一区二区三区白人| 中文字幕综合网| 亚洲成av人在线观看| 极品少妇一区二区| 欧美无乱码久久久免费午夜一区 | 精品影视av免费| 92国产精品观看| 欧美一区二区三区视频| 欧美国产日本韩| 亚洲电影一级片| 99精品视频中文字幕| 精品国产亚洲在线| 亚洲一区在线播放| 91香蕉国产在线观看软件| 欧美电影精品一区二区| 日韩毛片精品高清免费| 丰满白嫩尤物一区二区| 欧美va在线播放| 日本不卡不码高清免费观看| 91精品福利视频| 欧美日韩亚洲不卡| 欧美自拍丝袜亚洲| 美女高潮久久久| 欧美在线观看视频一区二区三区| 国产色爱av资源综合区| 久久99精品国产.久久久久久| 欧美一级精品在线| 国产精品性做久久久久久| 欧美激情一区二区三区不卡| 99国产精品99久久久久久| 夜夜嗨av一区二区三区中文字幕 | 亚洲成人精品影院| 91免费版在线| 午夜欧美2019年伦理| 制服丝袜亚洲色图| 一区二区三区欧美久久| 91精品黄色片免费大全| 国产高清亚洲一区| 亚洲成人在线免费| 国产精品毛片高清在线完整版| 91在线观看一区二区| 日本色综合中文字幕| 国产日韩欧美制服另类| 日本精品视频一区二区| 久久精品国产秦先生| 亚洲资源中文字幕| 精品福利一二区| 国产乱对白刺激视频不卡| 亚洲另类在线视频| 久久综合久久综合久久| 欧美一区三区二区| 日本乱人伦aⅴ精品| 国产成人在线视频网站| 一级女性全黄久久生活片免费| 欧美成人乱码一区二区三区| 欧美三级蜜桃2在线观看| 99精品视频在线观看| 高清不卡一区二区在线| 久久99精品久久久久久国产越南| 洋洋成人永久网站入口| 亚洲靠逼com| 一区二区三区毛片| 亚洲精品v日韩精品| 亚洲女爱视频在线| 国产精品国产三级国产普通话蜜臀| 精品久久久久香蕉网| 国产日韩成人精品| 中文字幕永久在线不卡| 中文字幕色av一区二区三区| ●精品国产综合乱码久久久久|