李欣宜 扩展Python的语法和语义
Python的语法扩展系统 Moshmosh Thautwarm&李欣宜 The awareness of low-level implementation details brings the appreciation of an abstraction and the intuitive explanation for it. — Oleg Kiselyov Kiselyov 目录 CONTENTS 提供语法和语义的语言不仅仅是工具, 还是思维方式 表达能力的极限,由内破除, 还是从外破除? Moshmosh: 我的Python不可能这么甜美清新 下班时在干什么?有没有空?可以来contribute吗? 1 提供语法和语义的语言 不仅仅是工具, 还是思维方式 “语言只是工具”是现代社会最为荒谬的说法之一。 即便存在海量的常见任务,他们在部分语言里很容 make sense却没有支持。 就说Python。Python是有极限的,只从语义语法上讲。 和性能、GIL相关的问题我们放在一边。 1. 没有多行lambda 2. 作用域管理规则/name shadow(let-binding) 3. 表达式和语句区分,表达式内部不能包含语句 4. 没有语法宏,代码操作不够自动 5. 没有variant类型(只能靠一大堆抽象类和继承去workaround)0 码力 | 39 页 | 3.69 MB | 1 年前34 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarm
0 码力 | 30 页 | 8.04 MB | 1 年前33 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查
解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 语言决定思维模型 在 实 际 业 务 中 处 理 数 据 � Python 语言决定思维模型 语言中的语法和语义, 决定了 它真实的表达力。 大多数语言都不是“万金油” 的,这是客观事实。 但它们不够“万金油”的问题 来源,不一定是不能解决的。 扩展语言,开阔思维 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 只对源代码Loader 重写get_data方法 调用父get_data方法, 拿到源代码 moshmosh.extension. perform_extension 源码变换 扩展的语法和语义 并非naïve的,不卫生的 源码变换; 其作用是对 AST实现一层quote moshmosh/extension_register.py (只有45行) 科普: Python Import机制是怎样的?0 码力 | 43 页 | 10.71 MB | 1 年前3python3学习手册
7/site-packages'] # python3 --version #查看版本 # python3 -V #查看版本 ★第3章、基础语法 ★保留字(关键字) True False None as nonlocal and exec not assert finally or break for pass class from return "Hello, " + word str_xx = func_xx("World") print(str_xx) ★让代码兼容py2与py3 python2与python3的语法上有些许不同,比如: ①py2的输出语句为 print "str" ,而在py3中使用print("str")函数 ②py3的/除法为float除法,不是整除,而py2中/表示整除 ③py2的源码文件默认使用ascii编码,除非指定了 包,导入后,py2会启导入的功能使得也支持py3的这些特性。同时py2 的这些原有特性会被py3覆盖 让源代码兼容python2和python3,只需要在代码开头添加以下几行, 然后都用py3的语法去写代码: from __future__ import absolute_import from __future__ import division from __future__ import0 码力 | 213 页 | 3.53 MB | 1 年前3Python 标准库参考指南 3.7.13
. . . . . . . . . . . . . . . . . . . . . . . . . . 1155 22.10 urllib.robotparser --- robots.txt 语法分析程序 . . . . . . . . . . . . . . . . . . . . . . . . 1155 22.11 http --- HTTP 模块 . . . . . . . . . Python 解析树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689 33.2 ast --- 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1693 33.3 symtable 1841 索引 1845 vii viii The Python Library Reference, 发布 3.7.13 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多0 码力 | 1961 页 | 9.14 MB | 9 月前3Python 标准库参考指南 3.7.13
引发的异常类 . . . . . . . . . . . . . . . . . . . . . . . . . 1090 22.10 urllib.robotparser --- robots.txt 语法分析程序 . . . . . . . . . . . . . . . . . . . . . . 1090 22.11 http --- HTTP 模块 . . . . . . . . . . . Python 解析树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1589 33.2 ast --- 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1593 33.3 symtable 1731 索引 1735 vii viii The Python Library Reference, 发布 3.7.13 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了0 码力 | 1846 页 | 9.09 MB | 9 月前3Python 标准库参考指南 3.8.20
. . . . . . . . . . . . . . . . . . . . . . . . . . 1222 21.10 urllib.robotparser --- robots.txt 语法分析程序 . . . . . . . . . . . . . . . . . . . . . . . . 1222 21.11 http --- HTTP 模块 . . . . . . . . . Python 解析树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1773 32.2 ast --- 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1777 32.3 symtable 1929 索引 1933 vii viii The Python Library Reference, 发布 3.8.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多0 码力 | 2052 页 | 9.74 MB | 9 月前3Python 标准库参考指南 3.8.20
引发的异常类 . . . . . . . . . . . . . . . . . . . . . . . . . 1141 21.10 urllib.robotparser --- robots.txt 语法分析程序 . . . . . . . . . . . . . . . . . . . . . . 1142 21.11 http --- HTTP 模块 . . . . . . . . . . . Python 解析树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659 32.2 ast --- 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1663 32.3 symtable 1809 索引 1813 vii viii The Python Library Reference, 发布 3.8.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.8.20
引发的异常类 . . . . . . . . . . . . . . . . . . . . . . . . . 1141 21.10 urllib.robotparser --- robots.txt 语法分析程序 . . . . . . . . . . . . . . . . . . . . . . 1142 21.11 http --- HTTP 模块 . . . . . . . . . . . Python 解析树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659 32.2 ast --- 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1663 32.3 symtable 1809 索引 1813 vii viii The Python Library Reference, 发布 3.8.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了0 码力 | 1927 页 | 9.69 MB | 9 月前3Python 标准库参考指南 3.13
1.2 自定义字符串格式化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.1.3 格式字符串语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.1.4 模板字符串 . . . 正则表达式操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.2.1 正则表达式语法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.2.2 模块内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1904 32 Python 语言服务 1905 32.1 ast --- 抽象语法树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1905 32.1.1 抽象文法0 码力 | 2242 页 | 11.73 MB | 9 月前3
共 260 条
- 1
- 2
- 3
- 4
- 5
- 6
- 26