基于 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 现在还不可以。 哈哈,等到我把类相关的东西弄出来,加上我没有引入外部库,理论上是没有毛病的。
Pypy
一行解释器
eval()
eval(),哈哈哈哈哈哈或

