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

歡迎訪問 生活随笔!

生活随笔

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

python

python的包文件叫什么_python之包和文件目录规范

發布時間:2025/3/15 python 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python的包文件叫什么_python之包和文件目录规范 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是包

包就是一個包含有__init__.py文件的文件夾

二、為何要有包

包的本質是模塊的模塊的一種形式,包是用來被當做模塊導入

1、產生一個名稱空間

2、運行包下的__init__.py文件,將運行過程中產生的名字都丟到1的名稱空間中

3、在當前執行文件的名稱空間中拿到一個名字mmm,mmm指向1的名稱空間

import mmm

from mmm import x

三、python3中與python2中的__init__.py的不同:

如果下面存放了好多模塊,當然每個模塊都應該有自己自己的名字。我們需要把這些名字拿到__init__.py里面, 才能使用。python3中即便沒有這個__init__.py文件也不會報錯,pyhon2二中就會報錯。是因為Python 3具有隱式命名空間包,允許它創建沒有__init__.py文件的包。但是在python2中必須要有__init__.py這個文件。

四、包的使用

1、導入包和__init__.py

包屬于模塊的一種,因而包以及包內的模塊均是用來被導入使用的,而絕非被直接執行,首次導入包(如import mmm)同樣會做三件事:

1、產生一個名稱空間

2、運行包下的__init__.py文件,將運行過程中產生的名字都丟到1的名稱空間中

3、在當前執行文件的名稱空間中拿到一個名字mmm,mmm指向1的名稱空間

import mmm

from mmm import x

強調:

1.關于包相關的導入語句也分為import和from ... import ...兩種,但是無論哪種,無論在什么位置,在導入時都必須遵循一個原則:凡是在導入時帶點的,點的左邊都必須是一個包,否則非法。

可以帶有一連串的點,如import 頂級包.子包.子模塊,但都必須遵循這個原則。但對于導入后,在使用時就沒有這種限制了,點的左邊可以是包,模塊,函數,類(它們都可以用點的方式調用自己的屬性)。

2、包A和包B下有同名模塊也不會沖突,如A.a與B.a來自倆個命名空間

3、import導入文件時,產生名稱空間中的名字來源于文件,import 包,產生的名稱空間的名字同樣來源于文件,即包下的__init__.py,導入包本質就是在導入該文件

2、絕對導入和相對導入

絕對導入,以包的文件夾作為起始來進行導入

import sys

print('==========>這是在被導入的__init__.py中查看到的sys.path')

print(sys.path)

from foo.m1 import f1

from foo.m2 import f2

from foo.m3 import f3

from foo.bbb.m4 import f4 # foo內有了一個f4

# # import foo.bbb.m4.f4 # 語法錯誤,點的左側必須是一個包

相對導入:僅限于包內使用,不能跨出包(包內模塊之間的導入,推薦使用相對導入)

# .:代表當前文件夾

# ..:代表上一層文件夾

from .m1 import f1

from .m2 import f2

from .m3 import f3

from .bbb.m4 import f4

"""

強調:

1、相對導入只能在包內部使用,用相對導入不同目錄下的模塊是非法的

2、無論是import還是from import,但凡是在導入時帶點的,點的左邊必須是包,否則語法錯誤

3、絕對導入是沒有任何限制的,所以絕對導入是一種通用的導入方式

"""

3、from 包 import *

在使用包時同樣支持from pool.futures import *

* 代表的是futures下__init__.py中所有的名字,通用是用變量__all__來控制*代表的意思

需要說明一點,包內部的目錄結構通常是包的開發者為了方便自己管理和維護代碼而創建的

這種目錄結構對包的使用者往往是無用的,此時通過操作__init__.py可以“隱藏”包內部的目錄結構,降低使用難度,比如想要讓使用者直接使用

import aaa

aaa.get()

需要操作sum下的__init__.py(提示: get在sum的aaa.py中):

from .aaa import get

五、軟件開發的目錄規范

Foo/

|-- core/ # 存放業務邏輯相關代碼

| |-- core.py

|

|-- api/ # 存放接口文件,接口主要用于為業務邏輯提供數據操作。

| |-- api.py

|

|-- db/ # 存放操作數據庫相關文件,主要用于與數據庫交互

| |-- db_handle.py

|

|-- lib/ # 存放程序中常用的自定義模塊

| |-- common.py

|

|-- conf/ # 存放配置文件

| |-- settings.py

|

|-- run.py # 程序的啟動文件,一般放在項目的根目錄下,因為在運行時會默認將運行文件所在的文件夾作為sys.path的第一個路徑,這樣就省去了處理環境變量的步驟

|-- setup.py #安裝、部署、打包的腳本。

|-- requirements.txt # 存放軟件依賴的外部Python包列表。

|-- README # 項目說明文件

README的內容:

1、軟件定位,軟件的基本功能;

2、運行代碼的方法: 安裝環境、啟動命令等;

3、簡要的使用說明;

4、代碼目錄結構說明,更詳細點可以說明軟件的基本原理;

5、常見問題說明。

總結

以上是生活随笔為你收集整理的python的包文件叫什么_python之包和文件目录规范的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 今天高清视频在线观看视频 | 欧美另类69xxxx | 一级美女大片 | 麻豆www.| 成人久久网站 | 深夜的私人秘书 | 骚虎tv | 国家队动漫免费观看在线观看晨光 | 久草中文视频 | 人妻91麻豆一区二区三区 | 国产一区视频免费观看 | 一区二区三区免费观看视频 | 成人午夜一区 | 精品人妻aV中文字幕乱码色欲 | 黑森林av凹凸导航 | 裸体喂奶一级裸片 | 黄色国产| 免费黄色小网站 | 99视频国产精品免费观看a | 亚洲成人中文字幕在线 | 国产精品剧情一区 | 日本精品少妇 | 天堂成人在线视频 | 国产激情久久 | 黄色网av | 中文字幕高清av | 夜夜摸夜夜操 | h视频免费在线 | 视频这里只有精品 | 欧美最猛性xxxxx(亚洲精品) | 91视频在线 | 亚洲成人免费网站 | 加勒比视频在线观看 | 香港一级淫片免费放 | 亚洲成av人片一区二区 | 亚洲一区影视 | 免费av影视 | 成人午夜网站 | 国产91精品一区 | 自拍偷拍福利视频 | 亚洲资源站 | 一曲二曲三曲在线观看中文字幕动漫 | 一区二区在线观看视频 | 天天舔夜夜操 | jizzz18 | 久久久久久国产视频 | 在线免费观看黄网 | 97伊人 | 国产午夜无码精品免费看奶水 | 日韩免费电影一区 | 午夜电影一区二区 | 69av视频| 激情婷婷丁香 | 久久青青国产 | 国产一区二区三区中文字幕 | 国产又大又黄的视频 | 中文字幕国产综合 | 日韩素人 | 麻豆爱爱视频 | 精品成人久久久 | 久久久久久草 | 国产99久久 | 99精品成人| 日本精品久久 | 美女在线观看视频 | 好姑娘在线观看高清完整版电影 | 欧美精品一二三四 | 日韩欧美手机在线 | 免费看欧美大片 | 免费成人av在线 | 91黑人精品一区二区三区 | 色哟哟视频在线 | 亚洲国产欧美自拍 | 国产香蕉一区 | 久久精品国产99精品国产亚洲性色 | 国产精品第157页 | 少妇被按摩师摸高潮了 | 骚色综合 | 国产原创在线观看 | 青青草免费av | 老头老太吃奶xb视频 | av毛片网 | 毛片网站免费观看 | www视频在线观看 | 午夜综合| 日韩美女啪啪 | 中文字幕电影一区 | 老子影院午夜精品无码 | 亚洲天堂福利视频 | 毛片网页 | 日本夫妻性生活视频 | 中文字幕在线不卡视频 | 天堂影院av | 国产精品久久久久三级 | 日本高清免费观看 | √资源天堂中文在线 | 美国成人免费视频 | 扒开jk护士狂揉免费 | 亚洲欧洲国产精品 |