 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 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 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 358 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667 29.13.3 使用 Signature 对象对可调用对象进行内省 . . . . . . . . . . . . . . . . . . . . . . . 1668 29.13.4 类与函数 . . . . . . . . . . . . . .0 码力 | 2072 页 | 10.39 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 358 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 480 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1667 29.13.3 使用 Signature 对象对可调用对象进行内省 . . . . . . . . . . . . . . . . . . . . . . . 1668 29.13.4 类与函数 . . . . . . . . . . . . . .0 码力 | 2072 页 | 10.39 MB | 9 月前3
 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 393 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1520 xv 26.1.5 泛型(Generic)0 码力 | 2246 页 | 11.74 MB | 9 月前3 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 393 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1520 xv 26.1.5 泛型(Generic)0 码力 | 2246 页 | 11.74 MB | 9 月前3
 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 389 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516 xv 26.1.5 泛型(Generic)0 码力 | 2242 页 | 11.73 MB | 9 月前3 Python 标准库参考指南 3.13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 389 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1515 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1516 xv 26.1.5 泛型(Generic)0 码力 | 2242 页 | 11.73 MB | 9 月前3
 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . 383 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781 29.13.3 使用 Signature 对象对可调用对象进行内省 . . . . . . . . . . . . . . . . . . . . . . . . . 1782 29.13.4 类与函数 . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3 Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . . . 383 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1781 29.13.3 使用 Signature 对象对可调用对象进行内省 . . . . . . . . . . . . . . . . . . . . . . . . . 1782 29.13.4 类与函数 . . . . . . . . . . . .0 码力 | 2207 页 | 10.45 MB | 9 月前3
 Python 标准库参考指南 3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 380 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490 26.1.5 泛型(Generic)0 码力 | 2253 页 | 11.81 MB | 9 月前3 Python 标准库参考指南 3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 380 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490 26.1.5 泛型(Generic)0 码力 | 2253 页 | 11.81 MB | 9 月前3
 Python 标准库参考指南 3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 380 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490 26.1.5 泛型(Generic)0 码力 | 2253 页 | 11.81 MB | 9 月前3 Python 标准库参考指南 3.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375 10.2 functools ——高阶函数,以及可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . 380 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489 26.1.4 标注可调用对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1490 26.1.5 泛型(Generic)0 码力 | 2253 页 | 11.81 MB | 9 月前3
 Python 标准库参考指南 3.8.20 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 328 10.3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1720 35 Unix 专有服务 1723 35.1 posix --- 最常见的 POSIX 系统调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723 35.2 pwd --- 用户密码数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729 35.9 fcntl ——系统调用 fcntl 和 ioctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731 35.10 pipes --- 终端管道接口0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 328 10.3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1720 35 Unix 专有服务 1723 35.1 posix --- 最常见的 POSIX 系统调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723 35.2 pwd --- 用户密码数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729 35.9 fcntl ——系统调用 fcntl 和 ioctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731 35.10 pipes --- 终端管道接口0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.8.20 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 328 10.3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1720 35 Unix 专有服务 1723 35.1 posix --- 最常见的 POSIX 系统调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723 35.2 pwd --- 用户密码数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729 35.9 fcntl ——系统调用 fcntl 和 ioctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731 35.10 pipes --- 终端管道接口0 码力 | 1927 页 | 9.69 MB | 9 月前3 Python 标准库参考指南 3.8.20 itertools --- 为高效循环而创建迭代器的函数 . . . . . . . . . . . . . . . . . . . . . . . . 315 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 328 10.3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1720 35 Unix 专有服务 1723 35.1 posix --- 最常见的 POSIX 系统调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1723 35.2 pwd --- 用户密码数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729 35.9 fcntl ——系统调用 fcntl 和 ioctl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1731 35.10 pipes --- 终端管道接口0 码力 | 1927 页 | 9.69 MB | 9 月前3
 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 347 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618 29.13.3 使用 Signature 对象对可调用对象进行内省 . . . . . . . . . . . . . . . . . . . . . . . 1618 29.13.4 类与函数 . . . . . . . . . . . . . .0 码力 | 2015 页 | 10.12 MB | 9 月前3 Python 标准库参考指南 3.9.20 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343 10.2 functools --- 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 347 10.2.1 partial 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 13.4.4 指定自定义的过滤器链 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466 13.4.5 例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1618 29.13.3 使用 Signature 对象对可调用对象进行内省 . . . . . . . . . . . . . . . . . . . . . . . 1618 29.13.4 类与函数 . . . . . . . . . . . . . .0 码力 | 2015 页 | 10.12 MB | 9 月前3
共 170 条
- 1
- 2
- 3
- 4
- 5
- 6
- 17














 
 