首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Skulpt逐行地评估Python

如何使用Skulpt逐行地评估Python
EN

Stack Overflow用户
提问于 2015-07-09 13:09:13
回答 1查看 1.3K关注 0票数 0

斯库普特给出的示例在包含python程序的整个字符串上运行解释器:

js.html

是否有可能逐行运行解释器,例如为了突出当前正在执行的Python行?

提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2015-07-09 13:42:04

代码语言:javascript
复制
var program = "print('something')\nprint('something else')";

var programs = program.split("\n");

for(var i = 0; i<programs.length; i++){
    //skulpt on `programs[i]` and highlight that line
}

从本质上说,你只想做这样的事情:

  1. 将整个程序分割成一系列行
  2. 单独运行每一行Skulpt (根据需要突出显示这一行)

稍微修改第二个链接中的代码:

代码语言:javascript
复制
<script src="../dist/skulpt.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function outf(text)
    {
        var output = document.getElementById("output");
        text = text.replace(/</g, '&lt;');
        output.innerHTML = output.innerHTML + text;
    }
    function runit(prog)
    {
        //changed this so the function accepts an argument
        var output = document.getElementById("output");
        output.innerHTML = '';
        Sk.configure({output:outf});
        try {
            var module = Sk.importMainWithBody("<stdin>", false, prog);
            var obj = module.tp$getattr('a');
            var runMethod = obj.tp$getattr('run');
            var ret = Sk.misceval.callsim(runMethod, 10);
            alert(ret.v);
        } catch (e) {
            alert(e);
        }
    }
</script>
<form>
<textarea id="code" rows="24" cols="80">
class Test:
     def run(self, b):
         self.a = 10 + b
         return self.a

print "Hello World"
a = Test()
</textarea><br>
<button onclick="runit()" type="button">Run</button>
</form>

<pre id="output"></pre>

然后在任何你想要的地方插入这段代码

代码语言:javascript
复制
var programs = document.getElementById("code").value;

for(var i = 0; i<programs.length; i++){
    // Whatever code you want to use to highlight the line goes here
    runit(programs[i]);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31318478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档