Python 一行 import 可以写好几个包,为什么很多 IDE 的 format 都会把我写在一行的自动展开?有什么好处

2023-04-14 23:41:44 +08:00
 LLaMA
4378 次点击
所在节点    Python
30 条回复
Leviathann
2023-04-14 23:43:02 +08:00
清晰,git 友好
huangsen365
2023-04-14 23:45:01 +08:00
因为对眼球的运动轨迹也更友好
insmoin
2023-04-15 00:05:17 +08:00
git 友好
Alias4ck
2023-04-15 03:27:53 +08:00
在 Python 中,确实可以在一行中导入多个包,但许多 IDE 和代码格式化工具(如 PEP 8 、Black 、autopep8 等)会将它们自动展开到多行。这样做主要有以下好处:

1.可读性:将每个导入语句放在单独的一行可以提高代码的可读性,使其他开发人员更容易理解和跟踪你的代码。当有多个导入时,长的一行代码可能不容易看清楚每个导入。

2.维护:在单独的一行上列出每个导入包,有助于代码的维护。当需要添加、删除或修改导入时,单行导入使得更改更加明确,减少了出错的可能性。

3.代码审查和版本控制:将导入语句拆分到多行可以简化代码审查和版本控制。当有多个导入在同一行时,对其中一个导入的更改可能导致整行被标记为已修改,这可能会使得审查变得更加困难。

4.遵循编码规范:PEP 8 是 Python 编程语言的一种编码规范,它建议将每个导入语句放在单独的一行。遵循这些规范有助于编写整洁、一致的代码,这对于团队协作尤为重要。

总之,尽管在一行中导入多个包是可行的,但将每个导入分开到单独的一行可以提高代码的可读性、可维护性,并遵循编码规范。因此,许多 IDE 和代码格式化工具会自动将导入语句拆分到多行

gpt-4 的回复确实很符合事实, 虽然我也用 isort 来处理包的导入, 主要原因是可读性和规范, 剩余两个点它描述的也很不错 涨姿势了
wu67
2023-04-15 08:31:16 +08:00
对 git 友好. 如果你哪天改一个了一个 import, 就知道到底是改了哪个, 而不是一整行都被标识改了, 要一个个去对比到底改了哪个
l4ever
2023-04-15 08:40:20 +08:00
OP 你好, 我这里是强迫症治疗中心的.
LaurelHarmon
2023-04-15 09:11:20 +08:00
有些贴 GPT 的以为别人没手还是咋
dayeye2006199
2023-04-15 09:38:24 +08:00
风格问题,一般也不用操心 isort 之类的可以帮你重新排序和组合成你要的 import 风格
skinny
2023-04-15 10:03:44 +08:00
因为你没有设置这些 IDE 用的格式化工具的最大行长,或者是以逗号结尾
e3c78a97e0f8
2023-04-15 10:45:09 +08:00
@Alias4ck 你的这个答案我看第一段就猜到是 GPT 生成的。看来 AI 和人类的语言还是有差别。
Alias4ck
2023-04-15 10:56:33 +08:00
@LaurelHarmon 贴 gpt 生成 下面我没回复我自己的观点? 我只是探讨我的知识边界 有问题? 现在 v2 上讨论问题的人戾气都这么重吗
lolizeppelin
2023-04-15 11:06:39 +08:00
import 本身的顺序是有影响的,比如一些被 import 的模块包含了初始化代码
一行多个 import 你会忽略顺序问题,也不好找最初始 import 的位置
ispinfx
2023-04-15 11:37:22 +08:00
@Alias4ck • 请不要把 AI 生成的内容发送到这里

都不让发了你还发不是找骂??
vopin
2023-04-15 11:44:55 +08:00
@livid #4 复制 chatGPT
我记得几个月前的共识是不要复制的,现在规则如何不清楚
qwerzl
2023-04-15 11:48:14 +08:00
@vopin 他这种还行吧...又不是纯 bot 。还是有输出自己观点的。
noahhhh
2023-04-15 11:52:02 +08:00
@LaurelHarmon gpt-4 要钱
LaurelHarmon
2023-04-15 11:53:41 +08:00
@noahhhh 门槛好高啊
mingli
2023-04-15 11:55:19 +08:00
我也觉得 4 楼没什么问题,人又不是单纯的复制粘贴
fox0001
2023-04-15 12:18:15 +08:00
其实,可以问问 ChatGPT
locoz
2023-04-15 14:57:00 +08:00
@LaurelHarmon #7 事实还确实就如此,有些人就是“没手”,“有手”就不会就这种问题问人了...且不提月经问题直接搜索能得到一堆同样的答案,在当下 AI 已经具备合格的语言能力时,这种常规月经问题直接让 AI 给答案就是最优解,效率高、内容整理完善、准确度也毫无问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/932658

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX