5 刘知杭 静态类型的Python静态类型的Python Lyzh(刘知杭) 目录 CONTENTS 有关类型的概念 使用mypy对Python源 代码进行静态分析 代数数据类型 拓展知识 关于类型的一些基本概念 有类型不等于有类型系统 动态语言类型化的必要性 不久前的一个案例 正文 类型的概念 CPython定义了PyObject这个 结构体作为对象头。 CPython中的类型,是指在对 象头中指向类型元信息的指针。 中通过函数的类型签名来寻找函数。 错误检查、程序验证 程序效率:动态类型不利于编译优化 渐进式类型系统 相对于静态语言的类型系统。 为动态语言添加类型系统需要考虑到过渡与历史包袱 一种叫做渐进式类型系统的东西完美的符合了这个应用场景 这种类型系统同时允许动态类型与静态类型的存在 声明类型系统、鸭子类型与结构类型系统 类型系统的分类——声明式类型系统与结构化类型系统 声明类型系统通过名字来检查类型 尽管没有为注释指定任何 含义,但始终存在一个隐式目标,即将它们用于类型提示。 该PEP旨在为类型注释提供标准语法,开放Python代码以简化静态分析和重构,潜 在的运行时类型检查,以及(可能在某些情况下)利用类型信息生成代码。 在这些目标中,静态分析是最重要的。这包括对类型检查器(如mypy)的支持, 以及提供可由IDE实现的代码重构操作。 虽然这些注释可以在运行时通过 __annotations__0 码力 | 42 页 | 6.87 MB | 1 年前3
3 Thautwarm 解放python的表达力 性能和安全性 语法和语义扩展 JIT 静态检查解放Python的 表达力,性能和安全性 Thautwarm 目录 CONTENTS 语法和语义扩展 JIT 静态类型 语法和语义扩展 表达力的扩展, 可用性的保留,白来的午餐? 演示一小部分: 模式匹配, Quick Lambda, Pipe运算 语言决定思维模型 GNU-APL C++ Haskell 说 到 质 数 � 人 们 想 到 什 么 � 语言决定思维模型 95 -> 0.96 Restrain JIT 2.74 -> 0.64 3.54 -> 0.59 3.14 -> 0.93 2.00 -> 0.03 2.60 -> 0.96 如果还有时间,我们用静态类型 来写一个简单的网页生成框架 一个用起来,没有学习曲线的框架。 很安全,因为没有程序员需要付出心 智负担的工作。 THANK YOU thautwarm: - github.com/thautwarm0 码力 | 43 页 | 10.71 MB | 1 年前3
Flask入门教程9 1.10 1.11 1.12 1.13 1.14 1.15 目录 简介 前言 第 1 章:准备工作 第 2 章:Hello, Flask! 第 3 章:模板 第 4 章:静态文件 第 5 章:数据库 第 6 章:模板优化 第 7 章:表单 第 8 章:用户认证 第 9 章:测试 第 10 章:组织你的代码 第 11 章:部署上线 小挑战 后记 2 Flask 开发实战》的作者,Pallets Team 成员。你可以在我 的个人主页了解更多关于我的信息。 目录 前言 第 1 章:准备工作 第 2 章:Hello, Flask! 第 3 章:模板 第 4 章:静态文件 第 5 章:数据库 第 6 章:模板优化 第 7 章:表单 第 8 章:用户认证 第 9 章:测试 第 10 章:组织你的代码 第 11 章:部署上线 小挑战 后记 版权信息 py 的文件中。如果你使用了其他名称,就要设置系统环境变量 FLASK_APP 来告诉 Flask 你要启动哪个程序。 Flask 通过读取这个文件对应的模块寻找要运行的程序实例,你可以把它设置成下 面这些值: 模块名 Python 导入路径 文件目录路径 管理环境变量 现在在启动 Flask 程序的时候,我们通常要和两个环境变量打交道: FLASK_APP 和 FLASK_ENV0 码力 | 127 页 | 7.62 MB | 1 年前3
Django 官方教程翻译项目endblock %} 变量都被双花括号括起来了。 {{ article.headline }} 的意思是“输出 article 的 headline 属性值”。这个“点”不止用于查找属性,还可以查找字典键值、索引和函数调用。 注意: {{ article.pub_date|date:”F j, Y” }} 使用了 Unix 风格的“管道符”(“|”字 符)。这是一个模板过滤器,用于过滤变量值。在这里过滤器将一个 的模板作为基类,并且用下面的标记块对模板中定义的标记块进行填充”。简 而言之,模板继承可以使模板间的冗余内容最小化:每个模板只需包含与其他文档有区别的内容。 下面是 base.html 可能的样子,它使用了静态文件: 1. # mysite/templates/base.html 2. 3. {% load static %} 4. 5. 6.{% 第一部分(zh)结尾的地方继续讲起。本节我们将建立数据库,创建你的第一个模型,然 后是快速介绍一下 Django 自动生成的管理站点。 现在,打开 mysite/settings.py,这是个普通的 Python 模块,用模块级别的变量表示 Django 设置。 默认情况下,配置的数据库是 SQLite,如果你对数据库不太熟,或者你只是对尝试 Django 感兴 趣,这是最简单的选择。SQLite 内嵌在 Python 里,所以你不用再安装其他东西来支持你的数据 0 码力 | 103 页 | 1.86 MB | 1 年前3
Python3 基础教程 - 廖雪峰........................................................................................ 32 数据类型和变量 .................................................................................................. 批处理文件。 这是因为 Windows 会根据一个 Path 的环境变量设定的路径去查找 python.exe,如果没找到,就会报错。如果在安装时漏掉了勾选 Add Python 3.5 to PATH,那就要手动把 python.exe 所在的路径添加到 Path 中。 如果你不知道怎么修改环境变量,建议把 Python 安装程序重新运行一 遍,务必记得勾上 Add Python 户输入字符串,并存放到一个变量里。比如输入用户的名字: >>> name = input() Michael 当你输入 name = input()并按下回车后,Python 交互式命令行就在等待 你的输入了。这时,你可以输入任意字符,然后按回车后完成输入。 输入完成后,不会有任何提示,Python 交互式命令行又回到>>>状态了。 那我们刚才输入的内容到哪去了?答案是存放到 name 变量里了。可以直0 码力 | 531 页 | 5.15 MB | 1 年前3
PyWebIO v1.1.0 使用手册注意事项 PyWebIO静态资源的托管 PyWebIO默认使用CDN来获取前端的静态资源,如果要将PyWebIO应用部署到 离线环境中,需要自行托管静态文件, 并将 webio_view() 或 webio_handler() 的 cdn 参数设置为 False ,此时需要将静态资源托管在和PyWebIO应用同级的 目录下。 同时,也可以通过 cdn 参数直接设置PyWebIO静态资源的部署目录。 PyWebIO的静态文件的路径可保存在 PyWebIO的静态文件的路径可保存在 pywebio.STATIC_PATH 中,可使用命令 python3 -c "import pywebio; print(pywebio.STATIC_PATH)" 将其打印出来。 注解 使用 start_server() 启动的应用,如果将 cdn 参数设置为 False ,会自动启 动一个本地的静态资源托管服务,无需手动托管。 基于协程的会话 run_js(code_, **args) 在用户浏览器中运行JavaScript代码. 代码运行在浏览器的JS全局作用域中 code (str) – js代码 args – 传递给js代码的局部变量。变量值需要可以被jso 序列化 Example: run_js('console.log(a + b)', a=1, b=2) pywebio.session.eval_js(expression_0 码力 | 119 页 | 7.41 MB | 1 年前3
PyWebIO v1.1.0 使用手册PyWebIO 静态资源的托管 PyWebIO 默认使用 CDN 来获取前端的静态资源,如果要将 PyWebIO 应用部署到离线环境中,需要自行托管 静态文件,并将 webio_view() 或 webio_handler() 的 cdn 参数设置为 False ,此时需要将静态资源 托管在和 PyWebIO 应用同级的目录下。同时,也可以通过 cdn 参数直接设置 PyWebIO 静态资源的部署目录。 静态资源的部署目录。 PyWebIO 的静态文件的路径可保存在 pywebio.STATIC_PATH 中,可使用命令 python3 -c "import pywebio; print(pywebio.STATIC_PATH)" 将其打印出来。 注解: 使用 start_server() 启动的应用,如果将 cdn 参数设置为 False ,会自动启动一个本地的静态 资源托管服务,无需手动托管。 4 **args) 在用户浏览器中运行 JavaScript 代码. 代码运行在浏览器的 JS 全局作用域中 参数 • code (str) –js 代码 • args –传递给 js 代码的局部变量。变量值需要可以被 json 序列化 Example: run_js('console.log(a + b)', a=1, b=2) pywebio.session.eval_js(expression_0 码力 | 98 页 | 1.73 MB | 1 年前3
PyWebIO v1.0.3 使用手册IO前端静态文件;暴露 PyWebIO后端接口。这其中需要注意前端页面和后端接口的路径约定, 以及前 端静态文件与后端接口分开部署时因为跨域而需要的特别设置。 集成方法 不同Web框架的集成方法如下: Tornado Flask Django aioh�p 需要在Tornado应用中引入两个 RequestHandler , 一个 RequestHandler 用 来提供前端静态文件,另一个 web.StaticFileHandler, {"path": STATIC_PATH, 'default_filename': 'index.html'}) # 前端静态文件托管 ]) application.listen(port=80, address='localhost') tornado.ioloop.IOLoop.current().start() org/en/stable/websocket.html#tornado.websocket.WebSocketHandler] , 并 将其绑定在 /tool/io 路径下;同时将PyWebIO的静态文件使用 tornado.web.StaticFileHandler [https://www.tornadoweb.org/en/stable/web.html? highlight=Stati0 码力 | 106 页 | 7.34 MB | 1 年前3
PyWebIO v1.0.3 使用手册Flask、Tornado、Django 和 aiohttp Web 框架的集成。 与 Web 框架集成需要完成两部分配置:托管 PyWebIO 前端静态文件;暴露 PyWebIO 后端接口。这其中需 要注意前端页面和后端接口的路径约定,以及前端静态文件与后端接口分开部署时因为跨域而需要的特别设 置。 22 Chapter 4. Documentation PyWebIO, 发布 1.0.3 框架的集成方法如下: Tornado Flask Django aiohttp 需要在 Tornado 应用中引入两个 RequestHandler , 一个 RequestHandler 用来提供前端静态文件,另一 个 RequestHandler 用来和浏览器进行 WebSocket 通讯: import tornado.ioloop import tornado.web from pywebio (r"/tool/(.*)", tornado.web.StaticFileHandler, {"path": STATIC_PATH, 'default_filename': 'index.html'}) # 前端静态文件托 管 ]) application.listen(port=80, address='localhost') tornado.ioloop.IOLoop.current().start()0 码力 | 94 页 | 1.71 MB | 1 年前5
PyWebIO v1.2.3 使用手册PyWebIO静态资源的托管 PyWebIO默认使用CDN来获取前端的静态资源,如果要将PyWebIO应用部署到 离线环境中,需要自行托管静态文件, 并将 webio_view() 或 webio_handler() 的 cdn 参数设置为 False 。 cdn=False 时需要将静态资源托管在和PyWebIO应用同级的目录下。 同时,也 可以通过 cdn 参数直接设置PyWebIO静态资源的部署目录。 参数直接设置PyWebIO静态资源的部署目录。 PyWebIO的静态文件的路径保存在 pywebio.STATIC_PATH 中,可使用命令 python3 -c "import pywebio; print(pywebio.STATIC_PATH)" 将其打印出来。 注解 使用 start_server() 启动的应用,如果将 cdn 参数设置为 False ,会自动启 动一个本地的静态资源托管服务,无需手动托管。 基于协程的会话 参数: 参数: 返回: 参数: 在用户浏览器中运行JavaScript代码. 代码运行在浏览器的JS全局作用域中 code (str) – js代码 args – 传递给js代码的局部变量。变量值需要可以被jso 序列化 Example: run_js('console.log(a + b)', a=1, b=2) pywebio.session.eval_js(expression_0 码力 | 119 页 | 7.44 MB | 1 年前3
共 132 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14













