V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
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
copie
V2EX  ›  Python

基于 Python 实现的 Python 解释器

  •  
  •   copie · 2018-06-14 17:16:28 +08:00 · 3066 次点击
    这是一个创建于 2115 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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
    janxin
        1
    janxin  
       2018-06-14 18:08:24 +08:00
    你让我想到了难产的「 Python3.5 源码剖析」
    copie
        2
    copie  
    OP
       2018-06-14 18:24:14 +08:00
    @janxin #1 我也关注那个项目很久了一直都没有什么大的起色。
    misaka19000
        3
    misaka19000  
       2018-06-14 18:28:59 +08:00
    向大佬递🍵
    cy97cool
        4
    cy97cool  
       2018-06-14 18:37:59 +08:00
    向大佬递🍵

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

    eval()
    leavic
        11
    leavic  
       2018-06-15 09:42:06 +08:00
    eval(),哈哈哈哈哈哈或
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2887 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:23 · PVG 19:23 · LAX 04:23 · JFK 07:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.