2017-02-28 55 views
0

我寫Python代碼發生器 作爲輸入它具有源代碼:輸出我需要生成的source 一部分execute(source_code)source_code是表示字符串。source 如果我寫"execute({0})".format(source)輸入源=「進口SYS」 我會得到execute(import sys) 所以,我想:?execute(\"\"\"{0}\"\"\")format(source)它是確定我試圖測試...有時候這是確定的....問題發生在源內部時有""" 例如:產生用於執行Python代碼(自動正確「」「)

from IPython.display import HTML 

HTML(""" 
<script> 
console.log("hello"); 
</script> 
<b>HTML</b> 
""") 

我的代碼變成是

execute("""from IPython.display import HTML 
HTML(""" 
<script> 
console.log("hello"); 
</script> 
<b>HTML</b> 
""")""") 

UPD:

代碼更改爲

execute('''{0}''').format(source) 

不`噸不能解決問題,該問題將遇到

def tojson(data): 
    '''Shorten the code to respond a little bit.''' 
    print(json.dumps(data)) 

回答

1

使用單三PLE報價應該有所幫助:

execute('''from IPython.display import HTML 
HTML(""" 
<script> 
console.log("hello"); 
</script> 
<b>HTML</b> 
""")''') 

運行在一個筆記本電腦,你需要使用eval()實際顯示HTML

exec('''from IPython.display import HTML''') 
eval('''HTML(""" 
<script> 
console.log("hello"); 
</script> 
<b>HTML</b> 
""")''') 

你的情況可能是:

execute('''{0}''').format(source) 

廠如果還有'''字符串:

source = """ 
def add(a, b): 
    '''Add''' 
    return a + b 

print(add(1, 2)) 
""" 

exec('''{0}'''.format(source)) 

輸出:

3 
+0

改變執行( '' '{0}' '')格式(源)確實有效!謝謝!但是如果內部來源有'''會發生什麼?我會遇到同樣的問題? – Yakov

相關問題