[转]c++访问python3-实例化类的方法
转自: http://blog.csdn.net/love_clc/article/details/76653100
此文是学习笔记,供日后翻阅。
下面列出C++访问python所需的函数,按调用的先后次序排列。
提示: 其中实例化类的方法是python3中的,若要使用python2,则用PyInstance_New这个方法。有关此方法网上有很多资料,就不列出了。
//PyInitialize: 必须首先调用,初始化python运行所需模块。它无参数、无返回值
void Py_Initialize();
/*Py_IsInitialized: 检查初始化是否成功
*返回值: 成功返回true*/
bool Py_IsInitialized();
/*PyImport_ImportModule: 加载python模块
*szModuleName: 模块名称
*返回值: 成功加载返回模块指针*/
PyObject *PyImport_ImportModule(const char *szModuleName);
/*PyModule_GetDict: 获取模块字典
*pModule: 模块指针
*返回值: 成功从指定模块获取字典返回字典指针*/
PyObject *PyModule_GetDict(PyObject *pModule);
/*PyDict_GetItemString: 从模块字典中获取指定的对象
*pDict: 被查找的模块字典指针
*key: 要查找的模块中的函数或类名
*返回值: 若找到指定的对象,返回指向它的指针;否则返回NULL*/
PyObject *PyDict_GetItemString(PyObject *pDict, const char *key);
/*PyInstanceMethod_New: 实例化从模块字典中查找到的类
*pClass: 从模块字典中找到的类信息指针
*返回值: 根据类信息指针构造该类的实例,并返回它的指针*/
PyObject *PyInstanceMethod_New(PyObject *pClass);
/*PyObject_CallMethod: 调用类方法
*pInstance: 由PyInstanceMethod_New返回的类实例
*pMethodName: 被调用的类方法名
*pFormat: 传递给类方法的参数类型格式字符串
*...: 传给类方法的参数
*返回值: 被调用类方法的返回值。若被调用方法无返回值,则本方法返回NULL*/
PyObject *PyObject_CallMethod(PyObject *pInstance, const char *pMethodName, const char *pFormat, ...);
/*PyObject_CallFunction: 调用模块中的函数
*pFunction: 从模块字典中获取的模块函数指针
*pFormat: 要传给模块函数的参数类型格式化字符串
*...: 传给模块函数的参数列表
*返回值: 模块函数的返回值;若模块函数无返回值,该方法返回NULL*/
PyObject *PyObject_CallFunction(PyObject *pFunction, const char *pFormat, ...);
/*PyArg_Parse: 从python返回的数据对象中获取指定的数据
*pArgs: 调用python方法得到的返回值
*pFormat: 指定获取什么类型数据的格式化字符串
*...: 存储获取数据的指针*/
PyArg_Parse(PyObject *pArgs, const char *pFormat, ...);
//下面这个宏释放python api创建的对象,如模块,模块字典,函数,类和类实例等等
Py_DECREF(pObject);
//最后调用此方法释放python模块
Py_Finalize();
[转]c++访问python3-实例化类的方法的更多相关文章
- 水果项目第2集-建立数据库->编写数据访问基础类->实现类的方法->调试通过
看来写博客对懒人也有好处.监督自己的好处. 今天一打开电脑,就想继续写了. 今天就开始动手做了. 数据库建立,编写访问数据库代码,实现各个类的方法,调试这些方法. 这些基础的代码写完后,就可以写逻辑代 ...
- 关于PHP静态方法调用和实例化类调用的区别
1.首先来澄清一些观点 由于静态方法在内存中只有一份,无论你调用多少次,都是共用的,而且没有对象的概念,所以不能在静态方法里面使用$this调用,如果非得调用的话,只能实例化自身类 而实例化不一样,每 ...
- Java中各种(类、方法、属性)访问修饰符与修饰符的说明
类: 访问修饰符 修饰符 class 类名称 extends 父类名称 implement 接口名称 (访问修饰符与修饰符的位置可以互换) 访问修饰符 名称 说明 备注 public 可以被本项目的所 ...
- SpringMVC + Spring + MyBatis 学习笔记:在类和方法上都使用RequestMapping如何访问
系统:WIN8.1 数据库:Oracle 11GR2 开发工具:MyEclipse 8.6 框架:Spring3.2.9.SpringMVC3.2.9.MyBatis3.2.8 先看代码: @Requ ...
- Java 扫描实现 Ioc 动态注入,过滤器根据访问url调用自定义注解标记的类及其方法
扫描实现 Ioc 动态注入 参考: http://www.private-blog.com/2017/11/16/java-%e6%89%ab%e6%8f%8f%e5%ae%9e%e7%8e%b0-i ...
- 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...
- java中,方法可以访问他的类对象的任何私有特性
java中,方法可以访问他的类对象的任何私有特性 读一本书(Core Java for the Impatient)时,发现这个注意,以前的时候没有在意,今天仔细想想发现记忆不深刻.记录一下 下面代码 ...
- 如何快速访问MSDN某一个类或方法的帮助文档
如何快速访问MSDN某一个类或方法的帮助文档? 我一般都是在Google上搜索的如"string msdn",而不是在Msdn上直接查找(你不可能知道所有的类或方法的完整命名空间) ...
- java中方法的控制修饰符也分为:可访问控制符和非访问控制符两类。
3 .方法的控制修饰符也分为:可访问控制符和非访问控制符两类. 可访问控制符有 4 种:公共访问控制符: public :私有访问控制符: private :保护访问控制符: protected :私 ...
随机推荐
- URL URI
URL 是统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址.互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理 ...
- linux下查看进程命令
他们都是用来显示当前运行的进程,但是: ps -aux 是用BSD的格式来显示python这个进程显示的项目有:USER , PID , %CPU , %MEM , VSZ , RSS , TTY , ...
- yum命令报错 yum update File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: --CentOS7.5
1.问题: 使用yum命令如:yum update 报SyntaxError invalid syntax 2.原因分析 yum的解释器是Python,CentOS自带的yum采用(自带的)pytho ...
- ionicAPP打开第三方APP
近来,碰到一个问题,需要在ionicAPP中打开第三方APP 然后,就找资料,发现了个比较好的解决方案 可以参考:https://blog.csdn.net/a727911438/article/de ...
- 弹性盒式布局flexbox(dispaly:flex)
display:flex flex-direction: row(行)/column(列)/row-reverse/column-reverse反方向 //布局 justify-content: s ...
- Maven项目中使用本地JAR包
<dependency> <groupId>com.TEST</groupId> <artifactId>hm-test</artifactId& ...
- 『TensorFlow』TFR数据预处理探究以及框架搭建
一.TFRecord文件书写效率对比(单线程和多线程对比) 1.准备工作 # Author : Hellcat # Time : 18-1-15 ''' import os os.environ[&q ...
- fly.js抛物线连续不断加入购物车
http://yanshi.sucaihuo.com/jquery/2/298/demo/
- less和sass的定义和区别
less是单独的一种文件,可以理解为css的升级版: sass是一个相对新的编程语言,为web前端开发而生,可以用它来定义一套新的语法规则和函数: 区别: ① 表现方式不同:less基于javas ...
- Samba服务与Nginx服务
Samba服务: 1 准备环境 =====>part1: iptables -F 清楚防火墙配置 #systemctl disable firewalld #开机默认关闭 #systemctl ...