1
53
PEP 8 授权声明:
PEP8应该是任何“内部”风格指南的基础,因为它总结了核心python团队发现的最有效的整体风格(当然也包括个人异议,如任何其他语言,但共识和BDFL同意PEP8)。 |
2
17
2001年在python邮件列表中详细讨论了这个主题: https://mail.python.org/pipermail/python-list/2001-July/071567.html |
3
15
其他人都已经提到了政治公众人物,但也要注意 不 在关键代码的中间有import语句。至少在python 2.6中,当一个函数有一个import语句时,还需要几个字节码指令。
|
4
11
如果导入的模块很少使用,并且导入成本较高,则中间导入可以。 否则,听从亚历克斯·马泰利的建议是明智的吗? |
5
8
这通常被认为是不好的做法,但有时是不可避免的(比如当你必须避免循环导入时)。
有必要时的一个例子:我使用
Waf
构建我们的所有代码。系统分为多个工具,每个工具都在自己的模块中实现。每个工具模块都可以实现
如果工作正常,工具可用。然后在同一个模块中
|
6
7
在文件开头将所有导入分组在一起被认为是“良好的形式”。
|
7
6
95%的情况下,您应该将所有导入的内容放在文件的顶部。您可能希望执行函数本地导入的一种情况是,为了避免循环导入,必须执行该操作。假设foo.py导入bar.py,bar.py中的函数需要从foo.py导入一些内容。如果将所有导入放在顶部,则导入依赖尚未编译的信息的文件时可能会遇到意外问题。在这种情况下,使用函数local import可以使代码在导入另一个模块时延迟,直到该模块的代码完全编译完毕,然后调用相关的函数。 但是,看起来您的用例更多的是为了清楚foo()的来源。在这种情况下,我更喜欢两件事中的一件: 首先,而不是
直接导入先决条件,稍后将其称为prerequisite.foo。增加的冗长性通过增加代码透明度来回报自己。 或者,(或者结合上面的内容)如果你的输入和它被使用的地方之间真的有这么长的距离,可能是你的模块太大了。需要一个其他任何东西都不使用的导入,这可能表明您的代码可以重构成一个更易于管理的块。 |
8
2
PEP8 :
嘲笑进口并不是坏习惯。这样,导入只适用于您在其中使用它的函数。 不过,如果导入的代码在块的顶部分组在一起,或者您希望它在文件的顶部全局,那么代码的可读性会更高。 |
9
2
好吧,我认为在文件开始时将所有导入分组是一个好的实践,因为每个人都知道在哪里查找是否希望知道加载了哪些libs |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |