PyCharm选中文件夹新建时Directory与Python package的区别

pycharm创建普通的directory和package时都是在硬盘上建立一个文件夹。

但是建package时会在这个文件夹中自动地生成一个空的__init__.py文件。
python的一个包是一个带有特殊文件 __init__.py 的目录。__init__.py 文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须存在。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。

参考:https://zhidao.baidu.com/question/2142737300560888068.html 

详情参考:http://www.cnblogs.com/JetpropelledSnake/p/8905727.html

 

 

Dictionary

Dictionary在pycharm中就是一个文件夹,放置资源文件,对应于在进行JavaWeb开发时用于放置css/js文件的目录,或者说在进行物体识别时,用来存储背景图像的文件夹。该文件夹其中并不包含_ _ init.py_ _文件

只要image目录是我们程序目录的子目录,我们就可以导入image目录下的任意模块来为我们所用,使用时可如下:

Python package

对于Python package 文件夹而言,与Dictionary不同之处在于其会自动创建_ _ init.py_ _文件。

简单的说,python package就是一个目录,其中包括一组模块和一个_ _ init.py_ _文件。

Image/

_init _.py

jpg.py

tiff.py

bmp.py

 

_ _ init_ _.py

该文件与Python的import机制有关,这关乎到你的哪些.py文件是对外可访问的。有些时候,如果一个包下有很多模块,在调用方import如此多模块是很费事,且不优雅的,此时可以通过修改_ _ init_ _.py来完成该任务。

在_ _ init_ .py中定义特殊变量_ all_ ,将要包含的模块复制给该变量,例如在Image/ _ init_ .py中定义 all _=[‘tiff’,’bmp’,’jpg’],这里的all 对应的就是 from …import * 中*代指的模块,此时在引用方使用如下语句:

 

其实_ _ init_ .py可以为空,当其为空时,from Image import * 将Image包下所有的模块都进行引用,如果想要控制引用的模块,则可以自行定义 all _

原文链接:https://blog.csdn.net/weixin_42467508/article/details/113493149

 

posted @ 2021-05-17 15:35  阳光美美哒  阅读(835)  评论(0编辑  收藏  举报