导入模块的最佳方式 Python
Best way to import modules Python
你们可以import
这样
from .models import *
或者像这样
from .models import Student
来自 PEP8:Wildcard imports (from <module> import *) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. There is one defensible use case for a wildcard import, which is to republish an internal interface as part of a public API (for example, overwriting a pure Python implementation of an interface with the definitions from an optional accelerator module and exactly which definitions will be overwritten isn't known in advance).
通常您只想导入您需要的内容,并确保导入是明确的(例如,您列表中的第三个选项,但有时也是第四个选项)。
一般来说,这取决于您要做什么以及您的编程风格。尽管它们都可以工作,但我建议坚持使用更明确的样式,例如您列出的 (3) 和 (4)。
使用 * 一次导入所有内容的问题在于它们容易出现命名空间错误,并且不清楚您实际使用的是什么模块。
虽然这看起来需要更多的工作,但是如果您坚持只在需要时导入您需要的内容,它会导致更好的程序更容易遵循。
你们可以import
这样
from .models import *
或者像这样
from .models import Student
来自 PEP8:Wildcard imports (from <module> import *) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. There is one defensible use case for a wildcard import, which is to republish an internal interface as part of a public API (for example, overwriting a pure Python implementation of an interface with the definitions from an optional accelerator module and exactly which definitions will be overwritten isn't known in advance).
通常您只想导入您需要的内容,并确保导入是明确的(例如,您列表中的第三个选项,但有时也是第四个选项)。
一般来说,这取决于您要做什么以及您的编程风格。尽管它们都可以工作,但我建议坚持使用更明确的样式,例如您列出的 (3) 和 (4)。
使用 * 一次导入所有内容的问题在于它们容易出现命名空间错误,并且不清楚您实际使用的是什么模块。
虽然这看起来需要更多的工作,但是如果您坚持只在需要时导入您需要的内容,它会导致更好的程序更容易遵循。