Import講解 & Directory與Python package的區別_CodingPark編程公園

特別強調

首先一句話:
import 進來了簡單來說就是跟在本程序裏寫的一樣(跟在自己家一樣)

from 文件夾📁 import 某個模塊📃

在這裏插入圖片描述

from 文件夾📁 import *所有東東📑

在這裏插入圖片描述

這裏要注意需要使用__ all __纔可完全引入
在這裏插入圖片描述

Import講解

格式 代碼
py全引入(一切皆可直接用) from dictionarySeg.hi import *
py名引入(需要 文件名.內容) from dictionarySeg import hi
Mon 06Mon 13t1.py(主程序) dictionarySeg hi.py(模塊) 項目ItisHanLP 主程序&模塊 關係圖

在這裏插入圖片描述

py全引入 - 一切皆可直接用

在這裏插入圖片描述

hi.py(模塊)


print('\nhi! 我是直出')

p = print('\nhi! 我來自P變量輸出')


def out():

    back = '\nhi! 我是負責返回的小可愛'
    print('\nhi! 我來自out方法')

    return back


t1.py


from dictionarySeg.hi import *

p   # 變量

print('\n-------')

out()   # 方法

print('\n-------')

back = out()    # 返回值

print('\n-------')

print(back)



結果展示

在這裏插入圖片描述

💡
需要注意
import 讓它提供某個變量或給出某個方法時,它會完整跑hi.py這個模塊,那自然這個模塊原有的print輸出也會被輸出。

py名引入

1 - 提供某個變量或給出某個方法時 需要 文件名.內容

在這裏插入圖片描述

hi.py(模塊)


print('\nhi! 我是直出')

p = print('\nhi! 我來自P變量輸出')


def out():

    back = '\nhi! 我是負責返回的小可愛'
    print('\nhi! 我來自out方法')

    return back


t1.py


from dictionarySeg import hi

hi.p   # 變量

print('\n-------')

hi.out()   # 方法

print('\n-------')

back = hi.out()    # 返回值

print('\n-------')

print(back)


💡
1 需要注意
import * 時可以直接用裏面的東西,簡單來說就是跟在本程序裏寫的一樣(跟在自己家一樣)
import 模塊名 時 需要 模塊名.變量/方法纔可使用

💡
2 需要注意
import 讓它提供某個變量或給出某個方法時,它會完整跑hi.py這個模塊,那自然這個模塊原有的print輸出也會被輸出。

2 - import模塊名 可命令程序 跑這個模塊

在這裏插入圖片描述

hi.py(模塊)


print('\nhi! 我是直出')

# p = print('\nhi! 我來自P變量輸出')
#
#
# def out():
#
#     back = '\nhi! 我是負責返回的小可愛'
#     print('\nhi! 我來自out方法')
#
#     return back


t1.py

from dictionarySeg import hi

hi

# hi.p   # 變量
#
# print('\n-------')
#
# hi.out()   # 方法
#
# print('\n-------')
#
# back = hi.out()    # 返回值
#
# print('\n-------')
#
# print(back)


💡
需要注意
import模塊名 可命令程序 這個模塊
import * 其實也可以辦到,你需要在__ init __.py 中 寫入 __ all __
舉個例子
在這裏插入圖片描述

Directory與Python package的區別

python作爲一個相對而言輕量級的,易用的腳本語言,我們可將Python代碼分爲:

  • 主程序
  • 組織模塊

程序的目的是爲了運行,而模塊的目的是爲了其他程序進行引用

  • Dictionary

Dictionary在pycharm中就是一個文件夾,放置資源文件。

  • Python package

Python package 文件夾與Dictionary不同之處在於其會自動創建__init.py__文件。
簡單的說,python package就是一個目錄,其中包括一組模塊一個__init.py__文件

__init.py__文件

該文件與Python的import機制有關,這關乎到你的哪些.py文件是對外可訪問的。

__ init __ .py可以爲空,當其爲空時,from Image import * 將 Image 包下所有的模塊都進行引用,如果想要控制引用的模塊,則可以自行定義 __ all __

用 __ all __ 暴露接口

有些時候,如果一個包下有很多模塊,在調用import如此多模塊是很費事,且不優雅的。
此時可以通過修改__init__.py來完成該任務。
在__init__.py中定義特殊變量__all__ ,將 要包含的模塊複製給該變量。
例如在Image/ __ init __.py中定義 __ all __=[‘tiff’,’bmp’,’jpg’]。
這裏的all 對應的就是 from … import * 中的*代指的模塊,此時在引用方使用如下語
在這裏插入圖片描述

如果一個模塊需要暴露的接口改動頻繁,all 可以這樣定義:


__all__ = [
    "foo",
    "bar",
    "egg",
]

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章