2017-02-28 40 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