【问题标题】:How to import whole python file and not break F403 flake8 rule?如何导入整个 python 文件而不破坏 F403 flake8 规则?
【发布时间】:2020-11-25 19:42:49
【问题描述】:

这样的导入:

from .file import *

是“反模式”。如何在不破坏 flake8 F430 规则的情况下将一个 python 文件导入另一个文件?我在 Django 项目中有 settings.py,我想像这样在 test_settings.py 中“覆盖”,

from settings import *

# make tests faster
DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}

使用内存数据库进行测试,我无法弄清楚如何在不违反规则的情况下进行测试。

【问题讨论】:

  • 不要使用from ... import *。导入您需要的内容:from settings import DATABASES.
  • 好吧,您正在从 settings 修改字典,所以您实际上也破坏了基本模块!
  • from something import * 对于 Jupyter 笔记本等交互式用例来说非常出色。不要在一般的生产代码中使用它,你应该很好。
  • 仅导入 DATABASES 将不起作用。我必须导入 settings.py 中的所有内容,我必须一一导入 settings.py 中的每个变量。

标签: python-3.x django python-import flake8


【解决方案1】:

根据“Two Scoops of Django 3.x”一书的作者所说,当他们提倡使用时,这实际上是一个例外

import *

我们想要覆盖所有命名空间的 Django 设置模块的奇异情况

为了允许使用多个设置文件。因此在这种情况下,最好的解决方案是在 flake8 配置文件中将 test_settings.py 从 flake8 扫描中排除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-12
    • 1970-01-01
    相关资源
    最近更新 更多