李欣宜 扩展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 表达式和语句区分,表达式内部不能包含语句 4. 没有语法宏,代码操作不够自动 5. 没有variant类型(只能靠一大堆抽象类和继承去workaround) 6. 对数据类型的方法不能扩展, 或者进行扩展是初级的,没有基于 类型的多态 那么告辞? 搭嘎!阔托瓦鲁! 摆 脱 编 程 语 言 给 你 的 限 制 Python有一堆好东西: 1. Python有良好的启动速度(看向Julia) 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 启扩展 3. -extension名 (extension参数)关 闭扩展 4. 可以自定义扩展并 注册 5. 在这套系统下,有 很多简单的自定义 扩展可供练手 任何在不使用该系统时拥有的功能(PYC二进制文 件发布,C扩展等等),在使用该系统后得以保持,拥0 码力 | 39 页 | 3.69 MB | 1 年前3
4 Python语法扩展框架Moshmosh和其上的CPython compatible JIT实现 thautwarm0 码力 | 30 页 | 8.04 MB | 1 年前3
4_杨柳_基于Python构建高稳定可扩展的自动化测试集群0 码力 | 62 页 | 25.29 MB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 但它们不够“万金油”的问题 来源,不一定是不能解决的。 扩展语言,开阔思维 我预期的语法(及语义) 扩展系统: 1. 首行用moshmosh? 标志模块 2. +extension名 (extension参数)开 启扩展 3. -extension名 (extension参数)关 闭扩展 4. 可以自定义扩展并 注册 5. 在这套系统下,有 很多简单的自定义 扩展可供练手 任何在不使用该系统时拥有的功能(PYC二进制文件 任何在不使用该系统时拥有的功能(PYC二进制文件 发布,C扩展等等),在使用该系统后得以保持,拥有 工业级的可靠性和稳定性 6 如何工作? Python Import 忽略Cache Loader, 只对源代码Loader 重写get_data方法 调用父get_data方法, 拿到源代码 moshmosh.extension. perform_extension 源码变换 扩展的语法和语义 并非naïve的,不卫生的0 码力 | 43 页 | 10.71 MB | 1 年前3
Python的智能问答之路 张晓庆 各个击破-业务 u 公司需要打卡吗?公司的文化是什么? 年假多少天? u 打车发票要怎么报销? u 物业一年物业费多少钱?能帮忙换水 龙头? p 其它场景机器人 p 特性: ü 有效渗透 ü 横向复制的可行性 各个击破-语言工具 • 开发成本 Ø C++:简洁紧凑,灵活方便,需要精细设计,开 发成本较高 Ø Python:语法简单,完全面向对象,容易入门和 使用 Ø Java:语法简单,面向对象,但框架较重,相对 Ø 计算(query,question)的语义相关性 Ø 返回top n做排序 • 依赖工具 Ø Python:数据预处理、搭建pipeline Ø Python扩展包:elasticsearch Ø Python扩展包:wmd • 存在问题 Ø 相似意图区分能力弱 Ø 泛化能力差 各个击破-第二次建模 • Baseline:检索+匹配 • 排序(Ranking) Ø 用知识库内的相似问,构造句对训练数 数据,训练通用领域内有监督的模型 Ø 模型融合 Ø 判断(query,question)相关性打分, 返回top n作为最终命中知识点,给出对 应知识点的答案回复用户 • 依赖工具 Ø Python及第三方扩展包 各个击破-模型 各个击破-数据 • 开源数据抓取&清洗 • 依赖工具 Ø requests抓取数据 Ø retry重试 • 模型训练&特征生成 • 依赖工具 • gensim:训练word2vec0 码力 | 28 页 | 2.60 MB | 1 年前3
PyWebIO v1.3.1 使用手册**other_html_attrs) 文件上传 参数 • accept (str or list) –单值或列表, 表示可接受的文件类型。文件类型的可用形 式有: – 以 . 字符开始的文件扩展名(例如:.jpg, .png, .doc)。注意:截至本文档 编写之时,微信内置浏览器还不支持这种语法 – 一个有效的 MIME 类型。例如:application/pdf 、audio/* 表示音频文件、 输出代码块 put_table* 输出表格 put_buttons 输出一组按钮,并绑定点击事件 put_image 输出图片 put_file 显示一个文件下载链接 put_tabs* 输出横向标签栏 Tabs put_collapse*† 输出可折叠的内容 下页继续 4.3. pywebio.output —输出模块 41 PyWebIO, 发布 1.3.1 表 1 – 续上页 'download me') pywebio.output.put_tabs(tabs, scope=- 1, position=- 1) → pywebio.io_ctrl.Output 输出横向标签栏 Tabs 参数 • tabs (list) –标签列表,列表项为一个 dict: {"title": "Title", "content": ...} ,其中 content 表示标签内容,可以为字符串、put_xxx()0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.3.3 使用手册**other_html_attrs) 文件上传 参数 • accept (str or list) –单值或列表, 表示可接受的文件类型。文件类型的可用形 式有: – 以 . 字符开始的文件扩展名(例如:.jpg, .png, .doc)。注意:截至本文档 编写之时,微信内置浏览器还不支持这种语法 – 一个有效的 MIME 类型。例如:application/pdf 、audio/* 表示音频文件、 输出代码块 put_table* 输出表格 put_buttons 输出一组按钮,并绑定点击事件 put_image 输出图片 put_file 显示一个文件下载链接 put_tabs* 输出横向标签栏 Tabs put_collapse*† 输出可折叠的内容 下页继续 4.3. pywebio.output —输出模块 41 PyWebIO, 发布 1.3.3 表 1 – 续上页 'download me') pywebio.output.put_tabs(tabs, scope=- 1, position=- 1) → pywebio.io_ctrl.Output 输出横向标签栏 Tabs 参数 • tabs (list) –标签列表,列表项为一个 dict: {"title": "Title", "content": ...} ,其中 content 表示标签内容,可以为字符串、put_xxx()0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.3.2 使用手册**other_html_attrs) 文件上传 参数 • accept (str or list) –单值或列表, 表示可接受的文件类型。文件类型的可用形 式有: – 以 . 字符开始的文件扩展名(例如:.jpg, .png, .doc)。注意:截至本文档 编写之时,微信内置浏览器还不支持这种语法 – 一个有效的 MIME 类型。例如:application/pdf 、audio/* 表示音频文件、 输出代码块 put_table* 输出表格 put_buttons 输出一组按钮,并绑定点击事件 put_image 输出图片 put_file 显示一个文件下载链接 put_tabs* 输出横向标签栏 Tabs put_collapse*† 输出可折叠的内容 下页继续 4.3. pywebio.output —输出模块 41 PyWebIO, 发布 1.3.2 表 1 – 续上页 'download me') pywebio.output.put_tabs(tabs, scope=- 1, position=- 1) → pywebio.io_ctrl.Output 输出横向标签栏 Tabs 参数 • tabs (list) –标签列表,列表项为一个 dict: {"title": "Title", "content": ...} ,其中 content 表示标签内容,可以为字符串、put_xxx()0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.3.0 使用手册**other_html_attrs) 文件上传 参数 • accept (str or list) –单值或列表, 表示可接受的文件类型。文件类型的可用形 式有: – 以 . 字符开始的文件扩展名(例如:.jpg, .png, .doc)。注意:截至本文档 编写之时,微信内置浏览器还不支持这种语法 – 一个有效的 MIME 类型。例如:application/pdf 、audio/* 表示音频文件、 输出代码块 put_table* 输出表格 put_buttons 输出一组按钮,并绑定点击事件 put_image 输出图片 put_file 显示一个文件下载链接 put_tabs* 输出横向标签栏 Tabs put_collapse*† 输出可折叠的内容 下页继续 4.3. pywebio.output —输出模块 41 PyWebIO, 发布 1.3.0 表 1 – 续上页 'download me') pywebio.output.put_tabs(tabs, scope=- 1, position=- 1) → pywebio.io_ctrl.Output 输出横向标签栏 Tabs 参数 • tabs (list) –标签列表,列表项为一个 dict: {"title": "Title", "content": ...} ,其中 content 表示标签内容,可以为字符串、put_xxx()0 码力 | 111 页 | 1.70 MB | 1 年前3
PyWebIO v1.4.0 使用手册**other_html_attrs) 文件上传 参数 • accept (str or list) –单值或列表, 表示可接受的文件类型。文件类型的可用形 式有: – 以 . 字符开始的文件扩展名(例如:.jpg, .png, .doc)。注意:截至本文档 编写之时,微信内置浏览器还不支持这种语法 – 一个有效的 MIME 类型。例如:application/pdf 、audio/* 表示音频文件、 下页继续 34 Chapter 4. Documentation PyWebIO, 发布 1.4.0 表 1 – 续上页 put_file 显示一个文件下载链接 put_tabs* 输出横向标签栏 Tabs put_collapse*† 输出可折叠的内容 put_scrollable*† 固定高度内容输出区域 内容超出则显示滚动条 . put_widget* 输出自定义的控件 'download me') pywebio.output.put_tabs(tabs, scope=None, position=- 1) → pywebio.io_ctrl.Output 输出横向标签栏 Tabs 参数 • tabs (list) –标签列表,列表项为一个 dict: {"title": "Title", "content": ...} ,其中 content 表示标签内容,可以为字符串、put_xxx()0 码力 | 115 页 | 1.70 MB | 1 年前3
共 117 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12













