首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
华为云
V2EX  ›  Python

基于 Python 实现的 Python 解释器

  •  
  •   copie · 67 天前 · 1460 次点击
    这是一个创建于 67 天前的主题,其中的信息可能已经有所发展或是发生改变。

    CSandBox

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

    以支持的功能:

    • 基础数据结构

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

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

      • if
      • for
      • while
    • 运算

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

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

    不支持的功能:

    • 函数

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

    • 协程

    • 导入包

    • 多文件

    • 等高级特性

    PS

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

    11 回复  |  直到 2018-06-15 09:42:06 +08:00
        1
    janxin   67 天前
    你让我想到了难产的「 Python3.5 源码剖析」
        2
    copie   67 天前
    @janxin #1 我也关注那个项目很久了一直都没有什么大的起色。
        3
    misaka19000   67 天前
    向大佬递🍵
        4
    cy97cool   67 天前
    向大佬递🍵

    顺带给出人家 500 Lines or Less 的链接:
    http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html
        5
    CodeDeer   67 天前
    给大佬递茶
        6
    daigouspy   67 天前 via Android
    这方面最牛的应该是垠神了
        7
    thedrwu   67 天前 via Android
    能自举吗
        8
    copie   67 天前
    @thedrwu #7 现在还不可以。 哈哈,等到我把类相关的东西弄出来,加上我没有引入外部库,理论上是没有毛病的。
        9
    wellsc   67 天前 via iPhone   ♥ 1
    Pypy
        10
    hard2reg   67 天前 via iPhone
    一行解释器

    eval()
        11
    leavic   67 天前
    eval(),哈哈哈哈哈哈或
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2692 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 21ms · UTC 04:25 · PVG 12:25 · LAX 21:25 · JFK 00:25
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1