zoukankan      html  css  js  c++  java
  • 关于__init__.py

    假设程序目录结构如下:

    ├── checkpoints/
    ├── data/
    │   ├── __init__.py
    │   ├── dataset.py
    │   └── get_data.sh
    ├── models/
    │   ├── __init__.py
    │   ├── AlexNet.py
    │   ├── BasicModule.py
    │   └── ResNet34.py
    └── utils/
    │   ├── __init__.py
    │   └── visualize.py
    ├── config.py
    ├── main.py
    ├── requirements.txt
    ├── README.md
    

    可以看到,几乎每个文件夹下都有__init__.py,一个目录如果包含了__init__.py 文件,那么它就变成了一个包(package)。

    其中__init__.py可以为空,也可以定义包的属性和方法,但其必须存在,其它程序才能从这个目录中导入相应的模块或函数。

    例如在data/文件夹下有__init__.py,则在main.py 中就可以

    from data.dataset import DogCat
    

    而如果在data/init.py中写入

    from .dataset import DogCat
    

    则在main.py中就可以直接写为:

    from data import DogCat
    

    或者

    import data;
    dataset = data.DogCat
    

    相比于from data.dataset import DogCat更加便捷。

  • 相关阅读:
    B-Suffix Array
    1 or 2
    Boundary
    Fake Maxpooling
    Cover the Tree
    Omkar and Circle
    20.5.31
    Yet Another Yet Another Task
    Codeforces Round #373 (Div. 2)E. Sasha and Array +线段树+矩阵快速幂
    2018 Multi-University Training Contest 2(Naive Operations ) hdu6315
  • 原文地址:https://www.cnblogs.com/Terrypython/p/11527185.html
Copyright © 2011-2022 走看看