【问题标题】:What is supposed to be in __init__.py__init__.py 中应该包含什么
【发布时间】:2018-12-29 22:35:39
【问题描述】:

我正在尝试创建一个 Python 包。你可以看看我的糟糕尝试here

我有一个名为imguralbum.py 的模块。它位于一个名为 ImgurAlbumDownloader 的目录中,我理解它是包的名称——就您在 import 语句中键入的内容而言,例如

import ImgurAlbumDownloader

我的模块包含两个类ImgurAlbumDownloaderImgurAlbumException。我需要能够在另一个模块(脚本)中使用这两个类。但是,我一生都无法弄清楚我应该在我的__init__.py 文件中放入什么来做到这一点。我意识到这重复了很多以前回答过的问题,但建议似乎很矛盾。

【问题讨论】:

  • 任何你喜欢的。

标签: python-3.x packages


【解决方案1】:

我仍然需要弄清楚原因(我有一些想法),但现在可以了:

from ImgurAlbumDownloader.imguralbum import ImgurAlbumDownloader, ImgurAlbumException

诀窍是将包名称添加到模块名称中。

【讨论】:

    【解决方案2】:

    在我看来,您确实不想要一个包裹。如果你的代码只做一件主要的事情并且它的所有部分都密切相关,那么只使用一个模块是可以的。当您的代码的不同部分可能并非全部都需要时,或者当您有太多代码以至于单个模块非常大且难以在其中找到内容时,包非常有用。

    【讨论】:

    • 谢谢@Blckknght。打包的原因是因为我在我正在处理的另一个模块中调用此代码。正如您所指出的,简单的解决方案是将我的模块粘贴在同一目录中。但是,因为两个原始模块都不是我自己的,所以我想以这样一种方式编写它,以便人们可以独立于其他脚本获得最新版本的下载器。
    猜你喜欢
    • 2011-08-18
    • 1970-01-01
    • 2012-05-26
    • 2019-10-06
    • 1970-01-01
    • 2021-06-08
    • 1970-01-01
    相关资源
    最近更新 更多