为什么这个 Python 模块从同一个模块导入一个类?
我正在查看 的来源gunicorn,这是一个非常受欢迎的项目。
在gunicorn/app/wsgiapp.py模块中,该模块定义了一个类,然后从同一个文件中导入该类:
class WSGIApplication(Application):
...
def run():
from gunicorn.app.wsgiapp import WSGIApplication
WSGIApplication("%(prog)s [OPTIONS] [APP_MODULE]").run()
该类定义在同一个模块中,在上面。为什么需要导入它?
如果我注释掉的第一行run()功能(进口线),gunicorn运行完全正常(不崩溃) -至少在路上我遇到它,用:gunicorn mysite.wsgi:application,mysite是我的测试Django项目的名称。
这是一个备受瞩目的项目,如果不需要此导入,我想现在有人会删除它。这种进口有原因吗?
回答
导入确实是不必要的,尽管它也没有什么坏处。
如果你“git blame”这一行,你会在这个提交中发现这个run函数只是从一个单独的main.py. 这main.py在同一个提交中被删除。