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",
]

在这里插入图片描述

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