• Python高效编程——基于Rust语言
图书条目标准图
21年品牌 40万+商家 超1.5亿件商品

Python高效编程——基于Rust语言

正版新书 新华官方库房直发 可开电子发票

76.16 6.4折 119 全新

库存8件

四川成都
认证卖家担保交易快速发货售后保障

作者[美]麦克斯韦尔·弗立顿 著;付岩 译

出版社清华大学出版社

出版时间2023-03

版次1

装帧其他

货号文轩12.21

上书时间2024-12-21

哆啦图书专营店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
图书标准信息
  • 作者 [美]麦克斯韦尔·弗立顿 著;付岩 译
  • 出版社 清华大学出版社
  • 出版时间 2023-03
  • 版次 1
  • ISBN 9787302630517
  • 定价 119.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 332页
  • 字数 416千字
【内容简介】
《Python高效编程——基于Rust语言》详细阐述了基于Rust语言的Python高效编程,主要包括从Python的角度认识Rust、使用Rust构建代码、理解并发性、在Python中构建pip模块、为pip模块创建Rust接口、在Rust中使用Python对象、在Rust中使用Python模块、在Rust中构建端到端Python模块、构建Python Flask应用程序、将Rust注入Python Flask应用程序、集成Rust的**实践等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
【作者简介】
麦克斯韦尔·弗立顿是一名软件工程师,为开源的财务损失建模基金会(financial loss modeling foundation)OasisLMF工作。2011年,Maxwell取得了英国林肯大学的护理学理学士学位。在医院急诊科工作12小时的同时,Maxwell还获得了英国开放大学的物理学学位,然后又迈向了另一个里程碑,获得了伦敦大学医学院的物理学和工程学研究生文凭。他曾参与过许多项目,如为德国政府提供医疗模拟软件,并在伦敦帝国学院指导计算医学学生。他有在金融科技领域工作的经验,并曾经为Monolith AI公司服务过。
【目录】
第1篇  了解Rust

第1章  从Python的角度认识Rust 3

  1.1  技术要求 3

  1.2  了解Python和Rust之间的区别 4

  1.2.1  结合使用Python与Rust的原因 4

  1.2.2  在Rust中传递字符串 7

  1.2.3  在Rust中调整浮点数和整数的大小 9

  1.2.4  在Rust的向量和数组中管理数据 11

  1.2.5  用哈希映射取代字典 13

  1.2.6  Rust中的错误处理 16

  1.3  了解变量所有权 19

  1.3.1  复制 20

  1.3.2  移动 20

  1.3.3  不可变借用 21

  1.3.4  可变借用 23

  1.4  跟踪作用域和生命周期 23

  1.5  构建结构体而不是对象 27

  1.6  使用宏而不是装饰器进行元编程 31

  1.7  小结 34

  1.8  问题 34

  1.9  答案 35

  1.10  延伸阅读 35

第2章  使用Rust构建代码 37

  2.1  技术要求 37

  2.2  用crate和Cargo代替pip管理代码 38

  2.3  在多个文件和模块上构建代码 45

  2.4  构建模块接口 49

  2.4.1  开发一个简单的股票交易程序 51

  2.4.2  写代码时编写文档的好处 57

  2.5  与环境交互 58

  2.6  小结 60

  2.7  问题 61

  2.8  答案 61

  2.9  延伸阅读 62

第3章  理解并发性 63

  3.1  技术要求 63

  3.2  并发性介绍 63

  3.2.1  线程 64

  3.2.2  进程 65

  3.3  使用线程的基本异步编程 67

  3.3.1  在Python中使用线程 68

  3.3.2  在Rust中使用线程 69

  3.4  运行多个进程 74

  3.4.1  在Python中使用多进程池 74

  3.4.2  在Rust中使用多线程池 78

  3.4.3  在Rust中使用多进程池 81

  3.5  安全地自定义线程和进程 85

  3.5.1  阿姆达尔定律 85

  3.5.2  死锁 86

  3.5.3  竞争条件 88

  3.6  小结 88

  3.7  问题 89

  3.8  答案 89

  3.9  延伸阅读 90

第2篇  融合Rust和Python

第4章  在Python中构建pip模块 95

  4.1  技术要求 95

  4.2  为Python pip模块配置设置工具 96

  4.2.1  创建GitHub存储库 96

  4.2.2  定义基本参数 99

  4.2.3  定义自述文件 100

  4.2.4  定义基本模块 101

  4.3  在pip模块中打包Python代码 102

  4.3.1  构建斐波那契计算代码 103

  4.3.2  创建命令行接口 105

  4.3.3  构建单元测试 107

  4.4  配置持续集成 113

  4.4.1  手动部署到PyPI 113

  4.4.2  管理依赖项 115

  4.4.3  为Python设置类型检查 116

  4.4.4  使用GitHub Actions设置和运行测试及类型检查 117

  4.4.5  为pip包创建自动版本控制 121

  4.4.6  使用GitHub Actions部署到PyPI 124

  4.5  小结 126

  4.6  问题 127

  4.7  答案 128

  4.8  延伸阅读 128

第5章  为pip模块创建Rust接口 129

  5.1  技术要求 129

  5.2  使用pip打包Rust代码 130

  5.2.1  定义gitignore和Cargo 130

  5.2.2  配置Python设置过程 132

  5.2.3  安装Rust库 134

  5.3  使用PyO3 crate构建Rust接口 135

  5.3.1  构建计算斐波那契数列的Rust代码 136

  5.3.2  创建命令行工具 138

  5.3.3  创建适配器 140

  5.3.4  使用单例设计模式构建适配器接口 142

  5.3.5  在Python控制台中测试适配器接口 146

  5.4  为Rust包构建测试 148

  5.5  比较Python、Rust和Numba的速度 151

  5.6  小结 153

  5.7  问题 154

  5.8  答案 154

  5.9  延伸阅读 155

第6章  在Rust中使用Python对象 157

  6.1  技术要求 157

  6.2  将复杂的Python对象传递到Rust中 157

  6.2.1  更新setup.py文件以支持.yml加载 158

  6.2.2  定义.yml加载命令 159

  6.2.3  处理来自Python字典的数据 160

  6.2.4  从配置文件中提取数据 164

  6.2.5  将Python字典返回到Python系统 165

  6.3  检查和使用自定义Python对象 167

  6.3.1  为Rust接口创建一个对象 167

  6.3.2  在Rust中获取Python GIL 168

  6.3.3  向新创建的PyDict结构体添加数据 170

  6.3.4  设置自定义对象的特性 172

  6.4  在Rust中构建自定义Python对象 173

  6.4.1  定义具有所需特性的Python类 174

  6.4.2  定义类静态方法处理输入 174

  6.4.3  定义类构造函数 175

  6.4.4  包装并测试模块 176

  6.5  小结 179

  6.6  问题 180

  6.7  答案 180

  6.8  延伸阅读 181

第7章  在Rust中使用Python模块 183

  7.1  技术要求 183

  7.2  认识NumPy 183

  7.2.1  在NumPy中执行向量相加操作 184

  7.2.2  在纯Python中执行向量相加操作 185

  7.2.3  在Rust中使用NumPy执行向量相加操作 186

  7.3  在NumPy中构建模型 190

  7.3.1  定义模型 190

  7.3.2  构建一个执行模型的Python对象 192

  7.4  在Rust中使用NumPy和其他Python模块 195

  7.5  在Rust中重建NumPy模型 198

  7.5.1  构建get_weight_matrix和invert_get_weight_matrix函数 200

  7.5.2  构建get_parameters、get_times和get_input_vector函数 201

  7.5.3  构建calculate_parameters和calculate_times函数 202

  7.5.4  将计算函数添加到Python绑定 203

  7.5.5  将NumPy依赖项添加到setup.py文件 204

  7.5.6  构建Python接口 204

  7.6  小结 205

  7.7  问题 206

  7.8  答案 206

  7.9  延伸阅读 207

第8章  在Rust中构建端到端Python模块 209

  8.1  技术要求 209

  8.2  分解一个灾难建模问题 209

  8.3  将端到端解决方案构建为一个包 214

  8.3.1  构建灾难足迹合并流程 215

  8.3.2  构建灾难脆弱性合并流程 217

  8.3.3  在Rust中构建Python接口 221

  8.3.4  在Python中构建接口 223

  8.3.5  构建包安装说明 223

  8.4  使用和测试包 225

  8.4.1  使用Pandas构建Python构造模型 226

  8.4.2  构建随机事件ID生成器函数 227

  8.4.3  为Python和Rust实现计时 228

  8.5  小结 230

  8.6  延伸阅读 230

第3篇  将Rust注入Web应用程序

第9章  构建Python Flask应用程序 233

  9.1  技术要求 233

  9.2  构建一个基本的Flask应用程序 234

  9.2.1  为应用程序构建一个入口点 235

  9.2.2  构建斐波那契数计算模块 235

  9.2.3  为应用程序构建Docker镜像 237

  9.2.4  构建NGINX服务 239

  9.2.5  连接并运行NGINX服务 241

  9.3  定义数据访问层 243

  9.3.1  在docker-compose中定义PostgreSQL数据库 244

  9.3.2  构建配置加载系统 245

  9.3.3  构建数据访问层 247

  9.3.4  搭建应用程序数据库迁移系统 249

  9.3.5  建立数据库模型 252

  9.3.6  将数据库访问层应用于fib计算视图 253

  9.4  构建消息总线 255

  9.4.1  为Flask构建一个Celery代理 256

  9.4.2  为Celery构建一个斐波那契计算任务 258

  9.4.3  用Celery更新计算视图 258

  9.4.4  在Docker中定义Celery服务 259

  9.5  小结 262

  9.6  问题 263

  9.7  答案 263

  9.8  延伸阅读 264

第10章  将Rust注入Python Flask应用程序 265

  10.1  技术要求 265

  10.2  将Rust融合到Flask和Celery中 266

  10.2.1  定义对Rust斐波那契数计算包的依赖 266

  10.2.2  用Rust构建计算模型 266

  10.2.3  使用Rust创建计算视图 269

  10.2.4  将Rust插入Celery任务中 270

  10.3  使用Rust部署Flask和Celery 271

  10.4  使用私有GitHub存储库进行部署 273

  10.4.1  构建一个协调整个过程的Bash脚本 275

  10.4.2  在Dockerfile中重新配置Rust斐波那契数列计算包的安装 275

  10.5  将Rust与数据访问相结合 277

  10.5.1  设置数据库克隆包 277

  10.5.2  设置diesel环境 279

  10.5.3  自动生成和配置数据库模型和模式 280

  10.5.4  在Rust中定义数据库连接 282

  10.5.5  创建一个获取并返回所有斐波那契记录的Rust函数 282

  10.6  在Flask中部署Rust nightly包 285

  10.7  小结 286

  10.8  问题 286

  10.9  答案 287

  10.10  延伸阅读 287

第11章  集成Rust的最佳实践 289

  11.1  技术要求 289

  11.2  通过将数据传入和传出Rust来保持Rust实现的简单性 290

  11.2.1  构建一个Python脚本来制定用于计算的数字的格式 290

  11.2.2  构建一个接受数字进行计算并返回结果的Rust文件 291

  11.2.3  构建一个接受计算出的数字并将其打印出来的Python脚本 292

  11.3  通过对象给接口一种原生的感觉 294

  11.4  使用trait而不是对象 298

  11.4.1  定义trait 300

  11.4.2  通过trait定义结构体的行为 301

  11.4.3  通过函数传递trait 303

  11.4.4  存储具有共同trait的结构体 305

  11.4.5  在main.rs文件中运行程序 305

  11.5  通过Rayon保持数据并行的简单性 308

  11.6  小结 310

  11.7  延伸阅读 310

·XIV·

Python高效编程—基于Rust语言

  

·XV·

目    录

  

  

  

  

  

  

  

  

  
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP