为什么这个 Python 模块从同一个模块导入一个 class?

Why does this Python module import a class from the same module?

我正在查看 gunicorn 的源代码,这是一个非常受欢迎的项目。

gunicorn/app/wsgiapp.py模块中,模块定义了一个class,然后从同一个文件中导入了class:

class WSGIApplication(Application):
    ...

def run():
    from gunicorn.app.wsgiapp import WSGIApplication
    WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()

class 是在上面的同一个模块中定义的。 为什么需要导入它?

如果我注释掉 run() 函数的第一行(导入行),gunicorn 运行得非常好(不会崩溃)- 至少在我 运行 的方式中它,其中:gunicorn mysite.wsgi:applicationmysite 是我的测试 Django 项目的名称。

这是一个备受瞩目的项目,如果不需要此导入,我想现在已经有人将其删除了。是否有此导入的原因?

导入确实是不必要的,尽管它也没有坏处。

如果您“git 指责”该行,您会在 this commit 中发现这个 run 函数只是从一个单独的 main.py 中复制和粘贴的,过去需要此导入才能工作。此 main.py 在同一提交中被删除。