适合人群: 1 c/c 开发者要在项目中引入脚本2 python开发者想要引入c/c 库或者想要深入理解python3 本科或者研究生 想要在项目中引入python和c
课程介绍
一 环境准备 和Python语法快速入门
二 Python CTypes访问C/C++动态链接库
三 Python源码跨平台的编译
四 Python的C/C++扩展库_模块、函数、类扩展
五 Python的多线程GIL及在web中调用ffmpeg扩展示例
六 Python虚拟机定制-使用c++调用python
七 基于python_qt_ffmpeg的视频播放项目示例
授课计划
为什么要与c/c++联合编程
1. c/c++项目中引入python作为脚本语言
a. python的开发高效(本)
b. python有丰富的第三方库
c. 引入脚本的目的是减少C/C++的代码的编译和调试,代码模块化降耦合
d. python学习的人多
2. python项目中引入C/C++
a. python胶水语言特性就是不会所有事情都由它做
b. python的假多线程 GIL
c. 涉及到性能的要有c/c++做
d. 嵌入式编程,与硬件结合 (可以把解释器直接刷入,操作树莓派、香蕉派的gpio spi传输等)
课程介绍
PythonSDK在windows中的安装和配置
pycharmIDE在Windows中的安装配置
PythonSDK在Mac中安装和配置
pycharm在Mac中安装和配置
PythonSdk和pycharm在ubuntu中安装和配置
print输出格式设定和代码演示
print输出到文件并输出csv格式的excel表格
python注释分号和换行基础语法
python的基础类型分析和整形浮点型的内部存储分析
python布尔bool类型内部存储分析
python复数的C语言内部结构分析
python的算数运算符
python字符集问题分析
python字符串的访问和截取方法
python字符串多行处理的三种方法
python字符串拼接和格式化
python _list数据结构内部存储分析
python_list数据访问插入删除代码示例
python_tuple元组
python_dictionary存储hash表分析
python_dictionary代码演示
python的if条件判断语法
python的while循环语句
Python的for循环语句
python函数的参数默认可变和关键字参数
python的函数返回值的多种形式
python的闭包函数closure
Python的lambda表达式
Python函数中变量的作用域scope
python面向对象编程构造函数和析构函数
python类的普通成员变量和私有成员变量
python类的继承和函数重载
python的模块和包的寻址引用分析
python模块导入几种方式
python导入import模块module的路径设置
python导入包和子包
python多进程编程分析
python多进程编程代码演示
Python多线程编程互斥锁和通信队列
python的异常处理抛出和自定义
ctypes库介绍和windows下编译动态链接库的说明
Python用ctypes调用的windows上C++32位动态库示例
编译linux动态库python的ctypes调用示例
测试的ctypes动态库代码移植到mac中
python的ctypes与c语言类型转换分析
ctypes整数和浮点数类型参数传递代码示例和异常处理
ctypes给c函数传递char字符串和wchar_t宽字符
通过create_string_buffer给c语言传递可修改的空间
使用ctypes跨平台mac_linux_windows调用C语言函数
使用ctypes调用win32的MessageBox并判断
通过ctypes获取c函数返回的整形和字符串
Ctypes给C++传递指针和修改c++返回指针的值
ctypes为C函数传递数组
ctypes给c函数传递结构体对象指针和数组
ctypes获取C函数返回结构体对象和指针
ctypes传递回调函数给c库函数qsort进行快速排序
通过ctypes在c函数中调用python的函数
案例-python与c++联合编程三维引擎示例说明
案例-完成ctypes调用的dll项目创建并单例类
案例-完成了python通过ctypes调用dll函数
案例-导入鬼火三维引擎完成窗口初始化接口
案例-完成三维场景添加
案例-完成主循环和场景摄像机刷新显示
案例-完成md2动画人物模型添加和属性设置
案例-完成场景和人物节点三维坐标设定
案例-完成人物武器添加
案例-完成鼠标点击人物挥刀的事件处理
Python源码编译windows环境准备和源码目录结构分析
完成python源码在windows中的编译
python编译后在windows上的环境变量和注册表配置
python源码在linux上编译配置运行
python源码在mac上编译安装和依赖库的编译安装
c++python扩展库的开发步骤和发布方法讲解
完成python的c扩展库模块入口创建和扩展函数代码
使用distutils模块完成扩展库的编译并在win_linux和mac上测试
Python源码PyObject结构分析和引用计数代码分析
PyLongObject与PyObject关系讲解及源码分析
使用VS2015创建好python扩展库项目配置和编译完成
基于vs2015配置python扩展库自动部署和调试
基于PyArg_ParseTuple给扩展库传递整形参数
传递浮点数并通过PyFloat_Check检测参数类型
PyUnicodeObject结构分析和扩展库返回字符串
扩展库接收字符串参数传递编码测试
扩展库传递关键字参数METH_KEYWORDS
扩展库传递一维和二维元组tuple参数并分析tuple源码
扩展库返回一维和二维元组tuple
扩展库读取list参数遍历显示并检测格式错误设置异常字符串
扩展库添加_插入_修改和删除list参数中元素
扩展库返回新创的list和参数list并对引用计数加一
扩展库读取Dictionary参数并处理引用计数解决内存泄漏问题
扩展库根据关键字读取字典并清理空间
扩展库函数参数遍历字典PyDict_Keys并清理相应空间
扩展库PyDict_Next迭代访问字典内容并封装PyObject打印函数
扩展库处理dict参数插入修改和删除数据
扩展库函数返回dictionary字段
扩展库新增类步骤分析
完成第一个扩展库类的示例完成类空间分配tp_new函数和setup安装脚本
类扩展构造函数和析构函数及关键字参数传递
扩展库类添加成员变量tp_members并在构造函数中初始化
扩展库字符串和PyObject成员变量添加和析构函数中的成员变量清理
扩展库类添加属性并定义get和set的属性函数
扩展库的类添加成员函数
扩展库类的循环引用内存泄漏问题设定垃圾回收函数解决
python全局解释器锁GIL调度策略分析和获取释放的api
在c++扩展函数中用创建线程PyGILState_Ensure并在线程处理GIL
c++的python扩展函数中保存线程环境释放线程锁
基于ffmpeg扩展库示例环境和项目创建
完成了扩展库PyFFmpeg对象创建_初始化和析构
创建XFFmpeg类导入ffmpeg相关库问题并设置完测试环境
完成视频信息读取和开放属性接口
在python的web程序中访问ffmpeg扩展库示例
完成cpp调用python的环境准备和虚拟机初始化
c++运行python脚本文件和脚本字符串并增加异常处理
c++读取python脚本中的dictionary类变量示例
c++调用python的类实例化对象访问成员函数和成员变量
c++调用python函数并传递list参数并获取返回值
c++给python传递变量的两种方法PyObject_SetAttrString
c++给python传递函数和类PyModule_AddFunctions
c++读取python模块并给python主模块传递模块PyImport_ImportModule
py_ffmpeg_python综合项目需求和用到的库说明
依赖的QT环境安装和代码示例
完成项目创建并初始化python虚拟机
c++读取python的配置项改变窗口大小和标题
qt按钮事件的Open槽函数中调用python函数
导入pyffmpeg扩展库完成视频的打开
完成pyffmpeg扩展库的Read读取视帧函数
在c++线程中调用python的main函数解决GIL问题并读取视频帧
完成扩展库中打开ffmpeg解码器
完成扩展库pyffmpeg的decode解码函数并完成解码测试
完成扩展库pyffmpeg的尺寸和像素格式转换上下文初始化和测试
完成扩展库pyffmpeg尺寸转换空间申请释放和处理
重载qt显示视频窗口完成图像设置和视频绘制函数
完成python图像设置接口并完成视频播放
完成视频播放器并根据fps控制播放速度
PyLplayer移植到linux步骤分析讲解
演示linux安装qt和编译ffmpeg源码
PyFFmpeg移植到linux并测试
完成了PyPlayer在linux的qtcreator移植
Python扩展库和PyPlayer移植到MacOS
共255节 · 101小时5分钟
¥150.0040700人在学
共52节 · 35小时15分钟套餐优惠
¥398.0015865人在学
共54节 · 31小时8分钟套餐优惠
¥118.0026899人在学
共80节 · 97小时30分钟套餐优惠
¥498.0022605人在学
评价
给该课程打分: