7-韦泽华-一键将C和Cpp代码转换为Python能调用的代码一键将 C/C++ 代码转换为 Python 能调用的代码 韦泽华 大家以前都是怎样调用C++代码呢? 1. Cython 2. boost.python/pybind11 3. ctypes 先不讨论这些工具的优劣 先给大家介绍一下 如何使用c2py来调用C++代码 在此之前给大家看一下要调用的C++代码源文件 • 我肯定是会拿上期所的API来作示范: (看一眼就好了) so)文件 • 第二步,调用代码,并享受完备的type hint。 与其他工具的用法进行一下比较? 与pybind11进行比较 • c2py:两个命令 • pybind11:1137行代码? • 不, 其实是11,376行代码: 跟pybind11比算个什么事?根本 不在一个次元! 要比就和不需要写C++代码的工 具比! 与ctypes进行比较 • c2py:调用代码,并享受type hint。 hint。 • ctypes:调用代码?? 如果把调用C++代码当作吃饭,那么: 工具 科技等级 手撸Cython 手撕猎物;钻木取火 Boost.python/pybind11 用猎枪打猎;在现代化的厨房里做菜 ctypes 在某个便利店里买吃的。(只卖番茄炒蛋) c2py 外卖app 所以 调用C++,认准 现代化的外卖app:c2py https://github.com/nanoric/c2py0 码力 | 12 页 | 1.24 MB | 1 年前3
邓良驹 编写更安全的Python代码编写安全的Python代码 邓良驹 2019.10.19 思考题 if user.balance >= product.price: user.balance -= product.price ? 目录 CONTENTS 常见不安全代码 代码检查的工具 总结:如何规避风险 常见不安全代码 小心 eval 应对: 在生产环境中,任何情况下都不要使用eval。 import sys 更不要以为 PyPI 源中的包就不存在恶意代码; 不要以为你import的就是你实际要import的*; 每个 PyPI 包都可能存在前述所有风险点, 有的甚至是故意、恶意为之。 应对: 谨慎选择第三方 PyPI 包,尽量少导入 PyPI 包; 利用 https://pyup.io/ 等服务保持检查和更新依赖; 利用 Chef InSpect 落实代码安全规范的检查。 *参考资料:“驹说码事” *参考资料:“驹说码事” 《如何import一个不存在的对象》 https://mp.weixin.qq.com/s/0_ivKVDU-nKf3r-c96sqrA 利用 Bandit 检查代码 记不住那么多点?交给Bandit! https://github.com/PyCQA/bandit https://bandit.readthedocs.io/en/latest/ B101 assert_used B1020 码力 | 18 页 | 988.40 KB | 1 年前3
python3学习手册python3学习手册 简介: Python官网: h�ps://www.python.org Python由Guido van Rossum于1989年底发明,于1991年发行第一版, Python源代码遵循GPL协议 Python是一种解释型、面向对象、动态数据类型、可交互的语言 python2.0于2000-10-16发布,于2020年1月1日停止更新2.x版本, Python-2.7成为最后一个py >>> #这里可执行python代码,类似shell脚本 >>> print("hello") >>> exit() #退出交互模式 ②执行一次性代码 # python3 -c "要执行的代码,多个语句之间用;分号隔开" ③执行脚本 # vi test.py h�ps://www.jetbrains.com/pycharm/download/ ★PyCharm快捷键 Alt + Shi� 列选择模式,可同时选择多列 Ctrl + Alt + L 重新格式化代码,Reformat Code Ctrl + B 跳转到鼠标指定的函数定义处 Shi� + F10 运行程序 Ctrl + R 查找替换 ★设置字体颜色 File → Se�ngs →0 码力 | 213 页 | 3.53 MB | 1 年前3
Python3 基础教程 - 廖雪峰...................................................................................... 19 Python 代码运行助手 .............................................................................................. 大,最后都得“翻译”成 CPU 可以执行的机器指令。而不同的编程语言, 干同一个活,编写的代码量,差距也很大。 比如,完成同一个任务,C 语言要写 1000 行代码,Java 只需要写 100 行,而 Python 可能只要 20 行。 所以 Python 是一种相当高级的语言。 你也许会问,代码少还不好?代码少的代价是运行速度慢,C 程序运行 1 秒钟,Java 程序可能需要 2 秒,而 是用来编写应用程序的高级编程语言。 当你用一种语言开始作真正的软件开发时,你除了编写代码外,还需要 很多基本的已经写好的现成的东西,来帮助你加快开发进度。比如说, 要编写一个电子邮件客户端,如果先从最底层开始编写网络协议相关的 代码,那估计一年半载也开发不出来。高级编程语言通常都会提供一个 比较完善的基础代码库,让你能直接调用,比如,针对电子邮件协议的 Python3 基础教程【完整版】0 码力 | 531 页 | 5.15 MB | 1 年前3
Python 标准库参考指南 3.6.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429 26.7 2to3 - 自动将 Python 2 代码转为 Python 3 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449 26.8 test —Python 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475 27.5 timeit —测量小代码片段的执行时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483 27.6 trace —跟踪 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1591 30.2 codeop —编译 Python 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1593 31 导入模块 1595 310 码力 | 1886 页 | 8.95 MB | 9 月前3
Python 标准库参考指南 3.6.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429 26.7 2to3 - 自动将 Python 2 代码转为 Python 3 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1449 26.8 test —Python 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1475 27.5 timeit —测量小代码片段的执行时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1483 27.6 trace —跟踪 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1591 30.2 codeop —编译 Python 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1593 31 导入模块 1595 310 码力 | 1886 页 | 8.95 MB | 9 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1478 27.7 2to3 - 自动将 Python 2 代码转为 Python 3 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1498 27.8 test --- Python 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532 28.5 timeit --- 测量小代码片段的执行时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1540 28.6 trace --- 跟踪 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1657 31.2 codeop --- 编译 Python 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1659 32 导入模块 1661 320 码力 | 1961 页 | 9.14 MB | 9 月前3
Python 标准库参考指南 3.7.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1391 27.7 2to3 - 自动将 Python 2 代码转为 Python 3 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . 1410 27.8 test --- Python 回归测试包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1443 28.5 timeit --- 测量小代码片段的执行时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1451 28.6 trace --- 跟踪 Python 语句执行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559 31.2 codeop --- 编译 Python 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1561 32 导入模块 1563 32.1 zipimport0 码力 | 1846 页 | 9.09 MB | 9 月前3
Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4.13.5 代码对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.13.6 类型对象 --- 应用程序中的国际化域名 . . . . . . . . . . . . . . . . . . . . 169 7.2.6 encodings.mbcs --- Windows ANSI 代码页 . . . . . . . . . . . . . . . . . . . . . 170 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637 16.4.6 升级 optparse 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644 16.5 getopt --- C 风格的命令行选项解析器0 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.13.5 代码对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.13.6 类型对象 --- 应用程序中的国际化域名 . . . . . . . . . . . . . . . . . . . . 164 7.2.6 encodings.mbcs --- Windows ANSI 代码页 . . . . . . . . . . . . . . . . . . . . . 165 7.2.7 encodings.utf_8_sig --- 带 BOM 签名的 UTF-8 编解码器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619 16.4.6 升级 optparse 代码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626 16.5 getopt --- C 风格的命令行选项解析器0 码力 | 2015 页 | 10.12 MB | 9 月前3
共 176 条
- 1
- 2
- 3
- 4
- 5
- 6
- 18













