差異

2012-10-26 108 views
1

誰能解釋什麼是在Python差異

林能完成相同的任務動態地使用exec和POPEN執行程序POPEN和exec之間的區別。

這裏的代碼使用EXEC的做法,但如果我用POPEN方法會發生什麼。

code1.py

def runjob(src, job): 
    x = "from {src} import *" + '\n' + "{job}(parm1=)" 
    y = x.format(src=src, job=job) 
    exec ('from ' + src + ' import *' + '\n' + job + '(10)') 


def main(): 
    runjob(c:/python27/test_job', 'il') 

code2.py

def fl(parm=None): 
    print 'function1' 
    print parm 

def f2(parm=None): 
    print 'function 2' 
    print parm 

def f3(parm=None): 
    print 'function 3' 
    print parm 
+0

X,Y,FL ,f2,f3 ..那是什麼聲音? –

回答

4

execPopen或多或少無關。


exec用於運行一段python代碼。

此語句支持Python代碼的動態執行。第一個表達式應該評估爲字符串,打開的文件對象或代碼對象。如果它是一個字符串,該字符串被解析作爲套件Python語句,然後執行(除非發生語法誤差)。如果它是一個打開的文件,該文件將被解析,直到EOF並被執行。


Popen是一個類,允許你運行任何PROGRAMM。

在新進程中執行一個子程序。它提供了很大的靈活性,以便開發人員能夠處理不屬於便利功能範圍的不常見情況。

您不僅可以運行其他programms的,你也可以閱讀他們的輸出,並設置了一些有用的選項,如工作目錄,或是否有新的終端應打開等