真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

pythonpackages有什么用

這期內容當中小編將會給大家?guī)碛嘘Ppython packages有什么用,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:申請域名、網(wǎng)頁空間、營銷軟件、網(wǎng)站建設、金牛網(wǎng)站維護、網(wǎng)站推廣。

package指的就是包,它是一個有層次的文件目錄結構,它定義了由n個模塊或n個子包組成的python應用程序執(zhí)行環(huán)境。通俗一點:包是一個包含__init__.py 文件的目錄,該目錄下一定得有這個__init__.py文件和其它模塊或子包。

但是這會分為兩種情況,第一種情況是一個空的__init__.py文件,另外一個情況是寫了代碼的__init__.py文件。不管是空的還是有內容的,這個目錄都會被認為是一個package,這是一個標識。

package的初始化工作

一個package 被導入,不管在什么時候__init__.py的代碼都只會被執(zhí)行一次

>>> import package
hello world
>>> import package
>>> import package

由于 package 被導入時 __init__.py 中的可執(zhí)行代碼會被執(zhí)行,所以小心在 package 中放置你的代碼,盡可能消除它們產(chǎn)生的副作用,比如把代碼盡可能的進行封裝成函數(shù)或類。

__init__.py內的導入順序

當我嘗試導入

from package import something

import語句會首先檢查something是不是__init__.py的變量,然后檢查是不是subpackage,再檢查是不是module,最后拋出ImportError。

所以檢查順序如下:

(1)__init__.py 文件內變量

(2)是不是package內的subpackage

(3)是不是package內的module

看個例子

我們有一個如下結構的package

在a.py文件內有一個函數(shù)

def bar():
    print("Hello, function 'bar' from module 'a' calling")

在b.py文件內有一個函數(shù)

def foo():
    print("Hello, function 'foo' from module 'b' calling")

然后我們添加一個空的__init__.py 文件在simple_package里面。

我們看下,當我們import simple_package的時候到底會發(fā)生什么事情(在simple_package內激活Python shell或者simple_package的路徑被包含在python的sys.path或者在PYTHONPATH的環(huán)境變量中)

>>> import simple_package
>>> 
>>> simple_package

>>> 
>>> simple_package.a
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'a' is not defined
>>> 
>>> simple_package.b
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'b' is not defined

我們可以看到simple_package已經(jīng)被成功導入,但是a.py和b.py并沒有被導入

當然了,如果你希望使用import simple_package后自動加載a或者b 模塊,這里有兩種辦法。

第一種就是在__init__.py內導入a或者b模塊,然后保存再激活python的交互環(huán)境

#__init__.py
import a
import b

當你再次嘗試import simple_package后,就可以使用simple_package.a.bar()來使用模塊a中的bar()函數(shù)了。

第二辦法就是手動導入,當你想使用模塊a中的bar()函數(shù)時,需要手動導入

import simple_package.a as a

然后就是可以a.bar()來使用bar()函數(shù)了。

上述就是小編為大家分享的python packages有什么用了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章題目:pythonpackages有什么用
分享鏈接:http://weahome.cn/article/gdpjch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部