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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python包的中 _init _.py文件介绍

發(fā)布時間:2024/9/19 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python包的中 _init _.py文件介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

python包的中 _init _.py文件介紹

我們新建python包時常常會看到一個__init _.py文件。

作用介紹:

? :這個文件是屬于python包的,這個文件用作于標識python包,當一個文件夾有這個__init _.py文件時,python將把其當成一個模塊包進行管理。你打開文件可以發(fā)現(xiàn)文件是空的。

? :這個文件可以設置變量控制模塊的模糊導入,如下:

我現(xiàn)在再包K里面有2個.py文件,如下圖片所示:

文件PY1.py內(nèi)容如下:

def holle1():print('holle1')

文件PY2.py內(nèi)容如下:

def holle2():print('holle2')

文件__ init.py __內(nèi)容如下:

__all__ = ['PY2'] print('__init__')

現(xiàn)在我再另一個文件里面導入K包里面的全部模塊

from K import * PY2.holle2() PY1.holle1() #這里將拋出異常#輸出結(jié)果如下: '''__init__ #這里說明了__init__.py被運行了holle2這里拋出異常Traceback (most recent call last):......NameError: name 'PY1' is not defined '''

拋出異常的原因很簡單,原因是因為我在__ init __.py文件里面設置了變量 _all _ 這個變量,這個變量設置的是當將包內(nèi)的全部模塊進行導入時,‘*’號將代表 _ all _變量里面的模塊名。并且這里導入的是PY2文件,并不是init _.py文件,但是文件還是運行了。所以說init文件就是包的一部分,不單單是標識作用。

:當成一個模塊來使用(不推薦)

現(xiàn)在我把_init _.py文件內(nèi)容更改成如下:

print('__init__') A = ['123']def InitFunction():print('This is the function of __init__.py')

其他文件中:

import K print(K.A) print(type(K)) K.InitFunction()

輸出結(jié)果如下:

__init__ ['123'] <class 'module'> This is the function of __init__.py

init_

[‘123’]
<class ‘module’>
This is the function of _ init_.py

總結(jié)

以上是生活随笔為你收集整理的python包的中 _init _.py文件介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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