• 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

  • 相关阅读:
    pythonday06数据类型(四)
    pythonday05数据类型(三)
    pythonday04数据类型(二)
    pythonday03数据类型(一)
    Apollo自动驾驶实践——第0讲:导论
    图论学习:生成树的Matrix-tree定理
    2020杭电多校6 Expectation
    2020牛客暑期多校第九场 B Groundhog and Apple Tree
    图论:二分图最大权匹配KM算法
    第十章 百度Apollo实战
  • 原文地址:https://www.cnblogs.com/yiyaxuan/p/14777153.html
Copyright © 2020-2023  润新知