李欣宜 扩展Python的语法和语义— Oleg Kiselyov 目录 CONTENTS 提供语法和语义的语言不仅仅是工具, 还是思维方式 表达能力的极限,由内破除, 还是从外破除? Moshmosh: 我的Python不可能这么甜美清新 下班时在干什么?有没有空?可以来contribute吗? 1 提供语法和语义的语言 不仅仅是工具, 还是思维方式 “语言只是工具”是现代社会最为荒谬的说法之一。 人们不得不成规模地重复工作,或是任由冗余在codebase里猖獗; 抛弃更深远的抽象和语义,最终代码的编写成为了让人烦恼的苦力。 Python是有极限的!我不写Python了! 摆 脱 编 程 语 言 给 你 的 限 制 ? 我们不继续谈语言和思维的问题了,也不谈一些高级的特性是多么 make sense却没有支持。 就说Python。Python是有极限的,只从语义语法上讲。 和性能、GIL相关的问题我们放在一边。 1 当 然地会使用Python。Python作为我第一门深入钻研的通用编 程语言,放弃是不能放弃的。 所以要想办法从Python现有的语法限制中脱身。 解放我的Python世界! 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 启扩展 3. -extension名 (extension参数)关 闭扩展0 码力 | 39 页 | 3.69 MB | 1 年前3
3 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 年前3
Python 标准库参考指南 3.8.20 1929 索引 1933 vii viii The Python Library Reference, 发布 3.8.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多 于这些类型,Python 语言核心 定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心确实定 义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一些是 由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 编程中不需要用到的高级函 数。 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是默认实现。 同样也不建议直接使用__import__()0 码力 | 2052 页 | 9.74 MB | 10 月前3
Python 标准库参考指南 3.8.20 1809 索引 1813 vii viii The Python Library Reference, 发布 3.8.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了 于这些类型,Python 语言 核心定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心 确实定义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一 些是由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 编程中不需要用到的高级 函数。 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是 默认实现。同样也不建议直接使用__import__()0 码力 | 1927 页 | 9.69 MB | 10 月前3
Python 标准库参考指南 3.8.20 1809 索引 1813 vii viii The Python Library Reference, 发布 3.8.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了 于这些类型,Python 语言 核心定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心 确实定义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一 些是由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 编程中不需要用到的高级 函数。 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是 默认实现。同样也不建议直接使用__import__()0 码力 | 1927 页 | 9.69 MB | 10 月前3
Python 标准库参考指南 3.10.15 索引 2061 xxiii xxiv The Python Library Reference, 发布 3.10.15 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多 于这些类型,Python 语言核心 定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心确实定 义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一些是 由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 编程中不需要用到的高级函 数。 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是默认实现。 同样也不建议直接使用__import__()0 码力 | 2207 页 | 10.45 MB | 10 月前3
Python 标准库参考指南 3.9.20 索引 2007 xxiii xxiv The Python Library Reference, 发布 3.9.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。它 还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了多 于这些类型,Python 语言核心 定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心确实定 义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一些是 由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 Reference, 发布 3.9.20 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是默认实现。 同样也不建议直接使用__import__()0 码力 | 2146 页 | 10.17 MB | 10 月前3
Python 标准库参考指南 3.10.15 模块索引 1929 索引 1933 xxii The Python Library Reference, 发布 3.10.15 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了 于这些类型,Python 语言 核心定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心 确实定义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一 些是由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 编程中不需要用到的高级 函数。 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是 默认实现。同样也不建议直接使用__import__()0 码力 | 2072 页 | 10.39 MB | 10 月前3
Python 标准库参考指南 3.9.20 模块索引 1879 索引 1883 xxii The Python Library Reference, 发布 3.9.20 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了 于这些类型,Python 语言 核心定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心 确实定义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一 些是由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 编程中不需要用到的高级 函数。 此函数会由 import 语句发起调用。它可以被替换 (通过导入builtins 模块并赋值给 builtins. __import__) 以便修改 import 语句的语义,但是 强烈不建议这样做,因为使用导入钩子 (参见 PEP 302) 通常更容易实现同样的目标,并且不会导致代码问题,因为许多代码都会假定所用的是 默认实现。同样也不建议直接使用__import__()0 码力 | 2015 页 | 10.12 MB | 10 月前3
Python 标准库参考指南 3.13 索引 2091 xxi xxii The Python Library Reference, 发行版本 3.13.0 reference-index 描述了 Python 语言的具体语法和语义,这份库参考则介绍了与 Python 一同发行的标准库。 它还描述了通常包含在 Python 发行版中的一些可选组件。 Python 标准库非常庞大,所提供的组件涉及范围十分广泛,正如以下内容目录所显示的。这个库包含了 于这些类型,Python 语言 核心定义了文字的形式,并对它们的语义设置了一些约束,但没有完全定义语义。(另一方面,语言核心 确实定义了语法属性,如操作符的拼写和优先级。) 这个库也包含了内置函数和异常 --- 不需要 import 语句就可以在所有 Python 代码中使用的对象。有一些 是由语言核心定义的,但是许多对于核心语义不是必需的,并且仅在这里描述。 不过这个库主要是由一系列的模块组 附带代码对象作为参数。代码编译事件也可能被引发。 在 3.13 版本发生变更: 现在可以将 globals 和 locals 作为关键字参数传入。 在 3.13 版本发生变更: 默认 locals 命名空间的语义已被调整为与locals() 内置函数的描述一致。 14 Chapter 2. 内置函数 The Python Library Reference, 发行版本 3.13.0 exec(source0 码力 | 2246 页 | 11.74 MB | 10 月前3
共 31 条
- 1
- 2
- 3
- 4













