2013-03-13 108 views

回答

1

一直以爲它是一樣的,我使用第一種選擇的情況下,我必須移動到下一行(如過多的類進口)

from moduleA import (ClassA, ClassB, ClassC, 
        DataA, DataB) 
3

他們是相同的:

>>> import dis 
>>> def a(): 
...  from module_abc import (a, b) 
...  
>>> def b(): 
...  from module_abc import a, b 
...  
>>> dis.dis(a) 
    2   0 LOAD_CONST    1 (-1) 
       3 LOAD_CONST    2 (('a', 'b')) 
       6 IMPORT_NAME    0 (module_abc) 
       9 IMPORT_FROM    1 (a) 
      12 STORE_FAST    0 (a) 
      15 IMPORT_FROM    2 (b) 
      18 STORE_FAST    1 (b) 
      21 POP_TOP    
      22 LOAD_CONST    0 (None) 
      25 RETURN_VALUE   
>>> dis.dis(b) 
    2   0 LOAD_CONST    1 (-1) 
       3 LOAD_CONST    2 (('a', 'b')) 
       6 IMPORT_NAME    0 (module_abc) 
       9 IMPORT_FROM    1 (a) 
      12 STORE_FAST    0 (a) 
      15 IMPORT_FROM    2 (b) 
      18 STORE_FAST    1 (b) 
      21 POP_TOP    
      22 LOAD_CONST    0 (None) 
      25 RETURN_VALUE   
+0

非常有趣:從module_abc導入a作爲a,b作爲b產生完全相同的操作碼。 – kay 2013-03-13 03:23:30

相關問題