日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

不同模块下包重名怎么解决_模块

發(fā)布時(shí)間:2023/11/27 生活经验 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 不同模块下包重名怎么解决_模块 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

模塊

1、 模塊是一個(gè)包含所有你定義的函數(shù)和變量的文件,其后綴名是.py。模塊可以被別的程序引入,以使用該模塊中的函數(shù)等功能。

2、 當(dāng)解釋器遇到 import 語(yǔ)句,如果模塊在當(dāng)前的搜索路徑就會(huì)被導(dǎo)入。

搜索路徑是一個(gè)解釋器會(huì)先進(jìn)行搜索的所有目錄的列表。

如想要導(dǎo)入模塊 support,需要把命令放在腳本的頂端。

3、 Python 的 from 語(yǔ)句讓你從模塊中導(dǎo)入一個(gè)指定的部分到當(dāng)前命名空間中,語(yǔ)法:

from modname import name1[, name2[, ... nameN]]

4、 把一個(gè)模塊的所有內(nèi)容全都導(dǎo)入到當(dāng)前的命名空間:

from modname import *

5、模塊除了方法定義,還可以包括可執(zhí)行的代碼。這些代碼一般用來(lái)初始化這個(gè)模塊。這些代碼只有在第一次被導(dǎo)入時(shí)才會(huì)被執(zhí)行。

每個(gè)模塊有各自獨(dú)立的符號(hào)表,在模塊內(nèi)部為所有的函數(shù)當(dāng)作全局符號(hào)表來(lái)使用。

所以,模塊的作者可以放心大膽的在模塊內(nèi)部使用這些全局變量,而不用擔(dān)心把其他用戶的全局變量搞混。

從另一個(gè)方面,當(dāng)你確實(shí)知道你在做什么的話,你也可以通過(guò) modname.itemname 這樣的表示法來(lái)訪問(wèn)模塊內(nèi)的函數(shù)。

模塊是可以導(dǎo)入其他模塊的。在一個(gè)模塊(或者腳本,或者其他地方)的最前面使用 import 來(lái)導(dǎo)入一個(gè)模塊,當(dāng)然這只是一個(gè)慣例,而不是強(qiáng)制的。被導(dǎo)入的模塊的名稱(chēng)將被放入當(dāng)前操作的模塊的符號(hào)表中。

還有一種導(dǎo)入的方法,可以使用 import 直接把模塊內(nèi)(函數(shù),變量的)名稱(chēng)導(dǎo)入到當(dāng)前操作模塊。比如: from fibo import fib, fib2

6、__name__屬性

? 一個(gè)模塊被另一個(gè)程序第一次引入時(shí),其主程序?qū)⑦\(yùn)行。如果我們想在模塊被引入時(shí),模塊中的某一程序塊不執(zhí)行,我們可以用__name__屬性來(lái)使該程序塊僅在該模塊自身運(yùn)行時(shí)執(zhí)行。

? 每個(gè)模塊都有一個(gè)__name__屬性,當(dāng)其值是'__main__'時(shí),表明該模塊自身在運(yùn)行,否則是被引入。

? __name__ 與 __main__ 底下是雙下劃線, _ _ 是這樣去掉中間的那個(gè)空格。

7、dir() 函數(shù)

? 內(nèi)置的函數(shù) dir() 可以找到模塊內(nèi)定義的所有名稱(chēng)。以一個(gè)字符串列表的形式返回。

? 如果沒(méi)有給定參數(shù),那么 dir() 函數(shù)會(huì)羅列出當(dāng)前定義的所有名稱(chēng)。

8、包

包是一種管理 Python 模塊命名空間的形式,采用"點(diǎn)模塊名稱(chēng)"。比如一個(gè)模塊的名稱(chēng)是 A.B, 那么他表示一個(gè)包 A中的子模塊 B 。

就好像使用模塊的時(shí)候,你不用擔(dān)心不同模塊之間的全局變量相互影響一樣,采用點(diǎn)模塊名稱(chēng)這種形式也不用擔(dān)心不同庫(kù)之間的模塊重名的情況。

這樣不同的作者都可以提供 NumPy 模塊,或者是 Python 圖形庫(kù)。

不妨假設(shè)你想設(shè)計(jì)一套統(tǒng)一處理聲音文件和數(shù)據(jù)的模塊(或者稱(chēng)之為一個(gè)"包")。

現(xiàn)存很多種不同的音頻文件格式(基本上都是通過(guò)后綴名區(qū)分的,例如: .wav,:file:.aiff,:file:.au,),所以你需要有一組不斷增加的模塊,用來(lái)在不同的格式之間轉(zhuǎn)換。

并且針對(duì)這些音頻數(shù)據(jù),還有很多不同的操作(比如混音,添加回聲,增加均衡器功能,創(chuàng)建人造立體聲效果),所以你還需要一組怎么也寫(xiě)不完的模塊來(lái)處理這些操作。

在導(dǎo)入一個(gè)包的時(shí)候,Python 會(huì)根據(jù) sys.path 中的目錄來(lái)尋找這個(gè)包中包含的子目錄。

目錄只有包含一個(gè)叫做 __init__.py 的文件才會(huì)被認(rèn)作是一個(gè)包,主要是為了避免一些濫俗的名字(比如叫做 string)不小心的影響搜索路徑中的有效模塊。

最簡(jiǎn)單的情況,放一個(gè)空的 :file:__init__.py就可以了。當(dāng)然這個(gè)文件中也可以包含一些初始化代碼或者為(將在后面介紹的) __all__變量賦值。

用戶可以每次只導(dǎo)入一個(gè)包里面的特定模塊。

總結(jié)

以上是生活随笔為你收集整理的不同模块下包重名怎么解决_模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。