Python:这两个import语句有什么区别?

Bab*_*abu 4 python import tuples

它们在功能上对我来说都是一样的.使用一个在另一个上有任何差异和优势吗?

>>> from datetime import datetime, timedelta
>>> from datetime import (datetime, timedelta)
Run Code Online (Sandbox Code Playgroud)

Sil*_*Ray 9

如果在parens中包装导入,如果在import语句中放置换行符,则不必使用反斜杠进行换行,这是首选样式.从功能上讲,它们是相同的,如果在一条线上,那么将它们排除在外是更清洁的.


Ash*_*ary 7

两者都是一样的:

In [17]: import dis

In [18]: def func1():
   ....:     from datetime import datetime, timedelta
   ....:     

In [19]: def func2():
   ....:     from datetime import (datetime, timedelta)
   ....:     

In [20]: dis.dis(func1)
  2           0 LOAD_CONST               1 (-1)
              3 LOAD_CONST               2 (('datetime', 'timedelta'))
              6 IMPORT_NAME              0 (datetime)
              9 IMPORT_FROM              0 (datetime)
             12 STORE_FAST               0 (datetime)
             15 IMPORT_FROM              1 (timedelta)
             18 STORE_FAST               1 (timedelta)
             21 POP_TOP             
             22 LOAD_CONST               0 (None)
             25 RETURN_VALUE        

In [21]: dis.dis(func2)
  2           0 LOAD_CONST               1 (-1)
              3 LOAD_CONST               2 (('datetime', 'timedelta'))
              6 IMPORT_NAME              0 (datetime)
              9 IMPORT_FROM              0 (datetime)
             12 STORE_FAST               0 (datetime)
             15 IMPORT_FROM              1 (timedelta)
             18 STORE_FAST               1 (timedelta)
             21 POP_TOP             
             22 LOAD_CONST               0 (None)
             25 RETURN_VALUE      
Run Code Online (Sandbox Code Playgroud)


mgi*_*son 5

没有区别除了第一节看起来更好一点给我.

作为旁注,似乎PEP 8也使用了示例中的第一种形式,尽管它没有说明明确排除第二种形式的首选形式.