基于 Python 实现的 Python 解释器

CSandBox

这是一个基于 Python 的 Python 沙盒程序. 只支持单文件进行运行.

以支持的功能:

  • 基础数据结构

    • 字符串
    • int
    • float
    • bool
    • 列表
    • 字典
    • 元组
    • 切片
  • 函数

    • 位置参数
    • 闭包
    • 递归
  • 控制语句

    • if
    • for
    • while
  • 运算

    • 基础四则运算
    • 位运算
    • 逻辑运算
    • 几乎全部的 Python 支持的运算

以上足以满足基础的算法编写需求

不支持的功能:

  • 函数

    • 装饰器
    • 键传参
  • 生成器(包括生成器表达式)

  • 协程

  • 导入包

  • 多文件

  • 等高级特性

PS

我结合 Python3.8a 阅读《 Python 源码剖析》后。看到 V2EX 上面有人问 Python 沙盒要用那个。于是我就突发奇想自己写一个沙盒。CSandBox。 在我写这个项目之前,还不了解 《 500 Lines or Less 》。我发现这本书里面也有一个项目是干这个的。而且我发现它写的比我写的支持的功能多,要好好的学习一下这本书。希望各位大佬指正。


基于 Python 实现的 Python 解释器

12 回复

你让我想到了难产的「 Python3.5 源码剖析」


我无法理解你的问题。

#1 我也关注那个项目很久了一直都没有什么大的起色。

向大佬递🍵

向大佬递🍵

顺带给出人家 500 Lines or Less 的链接:
http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html

给大佬递茶

这方面最牛的应该是垠神了

能自举吗

#7 现在还不可以。 哈哈,等到我把类相关的东西弄出来,加上我没有引入外部库,理论上是没有毛病的。

一行解释器

eval()

eval(),哈哈哈哈哈哈或

回到顶部