飞豹客 · 课能看,资料也能带走
飞豹客后端开发 会员免费

【C 教程】C 联合编程实战(完结)

这门课到底解决什么场景的问题 日常写 Python 的人,早晚会撞上两类麻烦:一是某段计算逻辑用纯 Python 跑得太慢,二是想直接调用已有的 C 库,或者反过来把 Python 嵌进 C 程序里。这时候光会写 def 和 import 就不够了,得知道 CPython 的扩展接口长什么样、对象在

单课价¥29.90新品 上架
会员价 会员免费开通会员后本篇可直接下载套餐详情
136 人关注 更新于 2026-05-11 永久有效
发货

网盘链接 · 支付成功后自动发货

保障

永久有效 · 链接失效免费补发

客服

每日 9:00-21:00 在线客服 联系客服

会员可免费下载本篇月会员可免费领取。

开通会员 ›
购买本课销量 0 · 永久有效
会员价 · 单课标价 ¥29.90

会员 · 按档位

永久免费可领
年免费可领
月免费可领

游客按标价购买,不享受上表折扣。

支付成功后自动发放网盘链接,链接失效可找客服免费补

正版保障 极速发货 售后无忧

这门课到底解决什么场景的问题

日常写 Python 的人,早晚会撞上两类麻烦:一是某段计算逻辑用纯 Python 跑得太慢,二是想直接调用已有的 C 库,或者反过来把 Python 嵌进 C 程序里。这时候光会写 def 和 import 就不够了,得知道 CPython 的扩展接口长什么样、对象在底层怎么表示、引用计数怎么维护。这门课就是冲着这个场景去的:它讲的是用 C 给 Python 写扩展,并且进一步碰 Python 虚拟机层面的定制,而不是教你 C 语言语法本身。

它适合的基础比较明确:C 语言得能读懂指针、结构体、函数指针,Python 得写过类、模块、装饰器这类东西。如果这两边都只是刚入门,直接看会吃力,因为课程里大量出现的是解释器内部的类型对象、方法表、生命周期钩子这类概念,没有铺垫。

建议先看哪几块,顺序怎么排

资料里能看出两条主线:一条是 C 扩展库本身,另一条是往虚拟机里走。建议先把扩展库这条线走通,因为它决定了你后面能不能看懂虚拟机那部分。

  • 先看扩展库新增类的整体步骤分析,理解一个 C 结构体是怎么变成一个 Python 类型的,这是后面所有内容的地基。
  • 接着看类扩展相关的成员变量部分,重点搞清楚成员变量是怎么挂到类型上、又怎么在构造阶段完成初始化的,这块直接决定你写的对象能不能被正确创建和访问。
  • 然后处理内存问题,也就是循环引用和垃圾回收那部分。扩展对象一旦互相引用,引用计数解决不了,必须自己实现回收逻辑,这是很多人写扩展时踩坑最多的地方,值得反复看。

虚拟机定制的内容放在这条线之后再看,否则容易变成照抄代码而不知道每行在干什么。看视频时不要只跟着敲,遇到类型定义和引用计数的位置,暂停下来自己画一遍对象之间的关系。

学完能独立做什么,资料怎么配合练

走完这门课,你应该能独立完成几件事:把一段性能敏感的 C 代码封装成 Python 可导入的扩展模块;定义一个带成员变量和方法、能被正常创建和销毁的扩展类;在对象存在循环引用时补上回收函数,避免内存泄漏;并且对 Python 虚拟机在扩展层面的工作方式有具体认识,而不是停留在概念上。

练习方式上,配套的图片资料适合对照着看结构关系,视频里演示的步骤建议自己重写一遍,但不要照抄——换一个自己的小需求,比如封装一个简单的数据结构,把新增类、加成员、处理引用这几步完整走一遍。每写完一个扩展,都用 Python 侧实际调用一次,观察对象创建和释放是否符合预期。虚拟机那部分如果一时用不上,可以先理解思路,等真正需要做深度定制时再回头细看。整体来说,这是一门偏底层、需要动手验证的课,适合已经能用 C 和 Python 写东西、想补上扩展与解释器这一环的人。

课程目录

课程目录144 集
  • 📁 第6章Python的CC++扩展库_类扩展 第6章Python的CC++扩展库_类扩展资料.png [493.5 KB] 06.4-扩展库类添加成员变量tp_members并在构造函数中初.mp4
  • [50.6 MB] 06.1-扩展库新增类步骤分析.mp4
  • [22.5 MB] 06.8-扩展库类的循环引用内存泄漏问题设定垃圾回收函数解决.mp4
  • [89.4 MB] 06.3-类扩展构造函数和析构函数及关键字参数传递.mp4
  • [72.1 MB] 06.7-扩展库的类添加成员函数.mp4
  • [33.6 MB] 06.2-完成第一个扩展库类的示例完成类空间分配tp_new函数和.mp4
  • [123.0 MB] 06.6-扩展库类添加属性并定义get和set的属性函数.mp4
  • [70.4 MB] 06.5-扩展库字符串和PyObject成员变量添加和析构函数中的.mp4
  • [58.6 MB] 📁 第5章Python的CC++扩展库_模块和函数 第5章Python的CC++扩展库_模块和函数资料.zip
  • [1.8 MB] 05.12-扩展库传递一维和二维元组tuple参数并分析tuple源.mp4
  • [56.4 MB] 05.03-Python源码PyObject结构分析和引用计数代码分.mp4
  • [35.3 MB] 05.05-使用VS2015创建好python扩展库项目配置和编译完.mp4
  • [66.0 MB] 05.01-完成python的c扩展库模块入口创建和扩展函数代码.mp4
  • [43.4 MB] 05.16-扩展库返回新创的list和参数list并对引用计数加一.mp4
  • [37.2 MB] 05.04-PyLongObject与PyObject关系讲解及源码.mp4
  • [48.1 MB] 05.08-传递浮点数并通过PyFloat_Check检测参数类型.mp4
  • [41.7 MB] 05.22-扩展库函数返回dictionary字段.mp4
  • [20.4 MB] 05.13-扩展库返回一维和二维元组tuple.mp4
  • [28.1 MB] 05.09-PyUnicodeObject结构分析和扩展库返回字符串.mp4
  • [48.8 MB] 05.02-使用distutils模块完成扩展库的编译并在win_l.mp4
  • [54.0 MB] 05.11-扩展库传递关键字参数METH_KEYWORDS.mp4
  • [51.8 MB] 05.07-基于PyArg_ParseTuple给扩展库传递整形参数.mp4
  • [27.3 MB] 05.20-扩展库PyDict_Next迭代访问字典内容并封装PyO.mp4
  • [27.0 MB] 05.06-基于vs2015配置python扩展库自动部署和调试.mp4
  • [36.5 MB] 05.18-扩展库根据关键字读取字典并清理空间.mp4
  • [42.8 MB] 05.19-扩展库函数参数遍历字典PyDict_Keys并清理相应空.mp4
  • [57.5 MB] 05.10-扩展库接收字符串参数传递编码测试.mp4
  • [27.1 MB] 05.14-扩展库读取list参数遍历显示并检测格式错误设置异常字符.mp4
  • [37.2 MB] 05.15-扩展库添加_插入_修改和删除list参数中元素.mp4
  • [37.2 MB] 05.17-扩展库读取Dictionary参数并处理引用计数解决内存.mp4
  • [57.6 MB] 05.21-扩展库处理dict参数插入修改和删除数据.mp4
  • [50.7 MB] 📁 第8章 Python虚拟机定制c++调用python 第8章 Python虚拟机定制c++调用python必看.zip
  • [1.8 MB] 08.1-完成cpp调用python的环境准备和虚拟机初始化.mp4
  • [26.3 MB] 08.7-c++给python传递函数和类PyModule_Ad.mp4
  • [26.6 MB] 08.3-c++读取python脚本中的dictionary类变.mp4
  • [42.5 MB] 08.2-c++运行python脚本文件和脚本字符串并增加异常处.mp4
  • [35.5 MB] 08.5-c++调用python函数并传递list参数并获取返回.mp4
  • [47.1 MB] 08.6-c++给python传递变量的两种方法PyObject.mp4
  • [19.0 MB] 08.8-c++读取python模块并给python主模块传递模.mp4
  • [20.0 MB] 08.4-c++调用python的类实例化对象访问成员函数和成员.mp4
  • [35.8 MB] 📁 第1章课程介绍和环境准备 第1章课程介绍和环境准备资料.zip
  • [1.8 MB] 01.3-PythonSDK在Mac中安装和配置.mp4
  • [49.0 MB] 01.4-pycharm在Mac中安装和配置.mp4
  • [22.7 MB] 01.2-pycharmIDE在Windows中的安装配置.mp4
  • [25.0 MB] 01.1-PythonSDK在windows中的安装和配置.mp4
  • [48.3 MB] 01.5-PythonSdk和pycharm在ubuntu中安装和.mp4
  • [53.8 MB] 📁 第7章 Python的CC++类扩展库_多线程GIL及ffmpeg扩展示例 07.3-c++的python扩展函数中保存线程环境释放线程锁.mp4
  • [40.8 MB] 07.6-创建XFFmpeg类导入ffmpeg相关库问题并设置完测.mp4
  • [93.2 MB] 07.4-基于ffmpeg扩展库示例环境和项目创建.mp4
  • [53.1 MB] 07.2-在c++扩展函数中用创建线程PyGILState_Ens.mp4
  • [79.2 MB] 07.8-在python的web程序中访问ffmpeg扩展库示例.mp4
  • [63.9 MB] 07.7-完成视频信息读取和开放属性接口.mp4
  • [34.6 MB] 07.1-python全局解释器锁GIL调度策略分析和获取释放的a.mp4
  • [24.3 MB] 07.5-完成了扩展库PyFFmpeg对象创建_初始化和析构.mp4
  • [61.8 MB] 📁 第9章基于python_qt_ffmpeg的视频播放项目示例 09.09-完成扩展库中打开ffmpeg解码器.mp4
  • [81.0 MB] 09.03-完成项目创建并初始化python虚拟机.mp4
  • [39.5 MB] 09.19-完成了PyPlayer在linux的qtcreator.mp4
  • [42.2 MB] 09.15-完成视频播放器并根据fps控制播放速度.mp4
  • [66.5 MB] 09.18-演示linux安装qt和编译ffmpeg源码.mp4
  • [25.9 MB] 09.01-py_ffmpeg_python综合项目需求和用到的库.mp4
  • [14.6 MB] 09.06-导入pyffmpeg扩展库完成视频的打开.mp4
  • [34.6 MB] 09.17-PyFFmpeg移植到linux并测试.mp4
  • [37.0 MB] 09.13-重载qt显示视频窗口完成图像设置和视频绘制函数.mp4
  • [79.7 MB] 09.11-完成扩展库pyffmpeg的尺寸和像素格式转换上下文初.mp4
  • [90.9 MB] 09.02-依赖的QT环境安装和代码示例.mp4
  • [73.5 MB] 09.05-qt按钮事件的Open槽函数中调用python函数.mp4
  • [74.5 MB] 09.07-完成pyffmpeg扩展库的Read读取视帧函数.mp4
  • [64.2 MB] 09.20-Python扩展库和PyPlayer移植到MacOS.mp4
  • [89.5 MB] 09.14-完成python图像设置接口并完成视频播放.mp4
  • [77.5 MB] 09.08-在c++线程中调用python的main函数解决GIL.mp4
  • [55.9 MB] 09.10-完成扩展库pyffmpeg的decode解码函数并完成.mp4
  • [85.6 MB] 09.12-完成扩展库pyffmpeg尺寸转换空间申请释放和处理.mp4
  • [59.4 MB] 09.04-c++读取python的配置项改变窗口大小和标题.mp4
  • [54.7 MB] 09.16-PyLplayer移植到linux步骤分析讲解.mp4
  • [20.4 MB] 📁 第2章Python语法快速入门 02.12-python _list数据结构内部存储分析.mp4
  • [15.6 MB] 02.14-python_tuple元组.mp4
  • [21.3 MB] 02.16-python_dictionary代码演示.mp4
  • [33.4 MB] 02.32-python多进程编程分析.mp4
  • [22.1 MB] 02.27-python类的继承和函数重载.mp4
  • [26.3 MB] 02.03-python注释分号和换行基础语法.mp4
  • [22.1 MB] 02.34-Python多线程编程互斥锁和通信队列.mp4
  • [84.6 MB] 02.18-python的while循环语句.mp4
  • [17.0 MB] 02.02-print输出到文件并输出csv格式的excel表格.mp4
  • [25.1 MB] 02.07-python的算数运算符.mp4
  • [23.0 MB] 02.17-python的if条件判断语法.mp4
  • [57.3 MB] 02.33-python多进程编程代码演示.mp4
  • [29.5 MB] 02.20-python函数的参数默认可变和关键字参数.mp4
  • [36.4 MB] 02.04-python的基础类型分析和整形浮点型的内部存储分析.mp4
  • [33.2 MB] 02.10-python字符串多行处理的三种方法.mp4
  • [20.5 MB] 02.06-python复数的C语言内部结构分析.mp4
  • [14.8 MB] 02.30-python导入import模块module的路径设置.mp4
  • [23.9 MB] 02.08-python字符集问题分析.mp4
  • [16.2 MB] 02.26-python类的普通成员变量和私有成员变量.mp4
  • [34.3 MB] 02.24-Python函数中变量的作用域scope.mp4
  • [32.2 MB] 02.31-python导入包和子包.mp4
  • [48.0 MB] 02.23-Python的lambda表达式.mp4
  • [15.9 MB] 02.21-python的函数返回值的多种形式.mp4
  • [26.7 MB] 02.25-python面向对象编程构造函数和析构函数.mp4
  • [29.0 MB] 02.19-Python的for循环语句.mp4
  • [21.1 MB] 02.09-python字符串的访问和截取方法.mp4
  • [26.1 MB] 02.05-python布尔bool类型内部存储分析.mp4
  • [13.6 MB] 02.11-python字符串拼接和格式化.mp4
  • [20.1 MB] 02.13-python_list数据访问插入删除代码示例.mp4
  • [31.4 MB] 02.35-python的异常处理抛出和自定义.mp4
  • [38.2 MB] 02.29-python模块导入几种方式.mp4
  • [22.8 MB] 02.15-python_dictionary存储hash表分析.mp4
  • [13.9 MB] 02.22-python的闭包函数closure.mp4
  • [19.0 MB] 02.28-python的模块和包的寻址引用分析.mp4
  • [18.7 MB] 02.01-print输出格式设定和代码演示.mp4
  • [35.4 MB] 📁 第3章Python CTypes访问CC++动态链接库 第3章Python CTypes访问CC++动态链接库文档.zip
  • [1.8 MB] 03.07-ctypes给c函数传递char字符串和wchar_t宽.mp4
  • [29.7 MB] 03.08-通过create_string_buffer给c语言传递.mp4
  • [18.6 MB] 03.06-ctypes整数和浮点数类型参数传递代码示例和异常处理.mp4
  • [30.9 MB] 03.05-python的ctypes与c语言类型转换分析.mp4
  • [9.9 MB] 03.14-ctypes给c函数传递结构体对象指针和数组.mp4
  • [27.7 MB] 03.21-案例-导入鬼火三维引擎完成窗口初始化接口.mp4
  • [24.0 MB] 03.01-ctypes库介绍和windows下编译动态链接库的说明.mp4
  • [11.5 MB] 03.16-ctypes传递回调函数给c库函数qsort进行快速排序.mp4
  • [22.4 MB] 03.13-ctypes为C函数传递数组.mp4
  • [22.4 MB] 03.02-Python用ctypes调用的windows上C++3.mp4
  • [30.1 MB] 03.26-案例-完成人物武器添加.mp4
  • [22.5 MB] 03.12-Ctypes给C++传递指针和修改c++返回指针的值.mp4
  • [30.8 MB] 03.19-案例-完成ctypes调用的dll项目创建并单例类.mp4
  • [17.1 MB] 03.22-案例-完成三维场景添加.mp4
  • [21.1 MB] 03.24-案例-完成md2动画人物模型添加和属性设置.mp4
  • [16.7 MB] 03.25-案例-完成场景和人物节点三维坐标设定.mp4
  • [27.7 MB] 03.04-测试的ctypes动态库代码移植到mac中.mp4
  • [11.9 MB] 03.03-编译linux动态库python的ctypes调用示例.mp4
  • [58.3 MB] 03.11-通过ctypes获取c函数返回的整形和字符串.mp4
  • [24.0 MB] 03.09-使用ctypes跨平台mac_linux_windows.mp4
  • [25.4 MB] 03.18-案例-python与c++联合编程三维引擎示例说明.mp4
  • [10.0 MB] 03.17-通过ctypes在c函数中调用python的函数.mp4
  • [25.9 MB] 03.20-案例-完成了python通过ctypes调用dll函数.mp4
  • [15.8 MB] 03.15-ctypes获取C函数返回结构体对象和指针.mp4
  • [18.5 MB] 03.27-案例-完成鼠标点击人物挥刀的事件处理.mp4
  • [67.5 MB] 03.10-使用ctypes调用win32的MessageBox.mp4
  • [19.0 MB] 03.23-案例-完成主循环和场景摄像机刷新显示.mp4
  • [15.9 MB] 📁 第4章Python源码跨平台的编译 04.3-python编译后在windows上的环境变量和注册表配.mp4
  • [40.3 MB] 04.4-python源码在linux上编译配置运行.mp4
  • [63.4 MB] 04.5-python源码在mac上编译安装和依赖库的编译安装.mp4
  • [96.8 MB] 04.2-完成python源码在windows中的编译.mp4
  • [87.7 MB] 04.6-c++python扩展库的开发步骤和发布方法讲解.mp4
  • [27.5 MB] 04.1-Python源码编译windows环境准备和源码目录结构.mp4
  • [20.4 MB] 适合人群 Python开发者 C语言开发者 后端工程师 学习收获 掌握C扩展库应用 定制Python虚拟机 提升Python程序性能 祝您学习愉快! 学有所成,前程似锦!