这些导入语句有什么区别?

5

我看到了很多关于导入模块的不同示例。我想知道它们之间的区别,是否在速度、准确性、优先级或心理方面有所不同。

第一种方式是最常见的:

import sys
import os
import socket
import shutil
import threading
import urllib
import time
import zipfile

我理解这种方法,但当你可以使用像我个人一样的方法时,这似乎是不必要的。

import sys, os, socket, shutil, threading, urllib, time, zipfile

在我看来,代码越少,行数越少,头疼的问题就会越少。然而,第三个问题让我困惑不已;

import sys, os, shutil
import threading
import zipfile
import socket, urllib
import time

那种导入方法的目的是什么?我认为混合前两种方法既不方便,也很杂乱。它似乎比任何一种方法都要慢,或者在最坏的情况下,比两种方法加起来还要慢。

所以,我想知道这三种方法之间有什么区别?

第三种方法有逻辑上的优势吗,如速度提升,还是只是为了好看?

2个回答

6

谢谢提供这个资源,不过它只说明了什么是好的和什么是不好的,却没有解释为什么它是好的或不好的,以及为什么不能使用它。感谢您的回复! - x otikoruk x
1
这是因为其中一个并不比另一个更好或更差;它是一份风格指南,而不是规则书。它确实有一些好处:如果在使用诸如git之类的版本控制时将导入分成多行,则更容易看到更改。 - Zack Tanner
我刚刚将你的问题标记为答案,因为似乎你的回答是最好的。非常感谢! - x otikoruk x

3
第三种方法是将可能一起使用的包分组。 当你将头文件(设置代码)从一个文件复制到另一个文件时,这种方法使得你更容易选择新程序所需的导入集合。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接