博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python from-import语句用法
阅读量:7081 次
发布时间:2019-06-28

本文共 2044 字,大约阅读时间需要 6 分钟。

hot3.png

testpy.py

#!/usr/bin/env python def euclid(a, b):    while b:        a, b = b, a%b    return a

$ python

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 

[GCC 4.8.2] on linux2

Type "help", "copyright", "credits" or "license" for more information.

>>> from testpy import euclid

>>> euclid(100,30)

10

>>> euclid(120,30)

30

>>> euclid(120,48)

24

>>>

测试mytest.py

#!/usr/bin/env pythonfrom testpy import euclidnum1= input("Please enter the first integer: ")num2= input("Please enter the second integer: ")print "The Greatest Common Divisor (GCD) is: ", euclid(num1,num2)

$ chmod +x mytest.py

$ ./mytest.py

Please enter the first integer: 120

Please enter the second integer: 48

The Greatest Common Divisor (GCD) is:  24

在c语言中调用python模块中函数

/** * @file euclidpy.c * gcc -Wall -O2 -o euclidpy euclidpy.c -I/usr/include/python2.7 -L/usr/lib -lpython2.7 -Wl,-R/usr/local/lib */#include 
#include 
int main(){    //初始化python    Py_Initialize();    if (!Py_IsInitialized()) {        printf("Python_Initialize failed\n");        return 1;    }       PyObject *pModule = NULL;    PyObject *pFunc   = NULL;    PyObject *pArg    = NULL;    PyObject *result  = NULL;    PyRun_SimpleString("import sys");                                   //直接执行python语句    PyRun_SimpleString("import sys;sys.path.append('.')");    pModule = PyImport_ImportModule("testpy");    if (pModule == NULL) {        printf("import module failed!\n");        return -1;    }      pFunc   = PyObject_GetAttrString(pModule, "euclid");    pArg    = Py_BuildValue("(i, i)", 120, 48);    //调用函数,并得到python类型的返回值    result =PyEval_CallObject(pFunc,pArg);    //c用来保存c/c++类型的返回值    int c;    //将python类型的返回值转换为c/c++类型    PyArg_Parse(result, "i", &c);    //输出返回值    printf("The Greatest Common Divisor (GCD) is:%d\n", c);        Py_Finalize();    return 0;}

编译和运行:

$ gcc -Wall -O2 -o euclidpy euclidpy.c -I/usr/include/python2.7 -L/usr/lib -lpython2.7 -Wl,-R/usr/local/lib

$ ./euclidpy 

The Greatest Common Divisor (GCD) is:24

转载于:https://my.oschina.net/u/2245781/blog/636138

你可能感兴趣的文章
基于ThreadPoolExecutor实现工作引擎参考
查看>>
Go语言的基本数据类型
查看>>
WEB测试:***apache
查看>>
42 个移动端启动页面优化 Tips
查看>>
Egret之ProtoBuf安装
查看>>
Cocos2d-x3.0游戏实例《别救我》目录
查看>>
我的友情链接
查看>>
ASP开发中数据库文件调用的捷径
查看>>
debian启动项与服务设置
查看>>
WinPcap编程环境设置
查看>>
基于openssl的https服务配置
查看>>
从 CentOS 5.5 中精简出属于自己的专属Linux (三)
查看>>
C和指针---第十五章:输入/输出函数
查看>>
Linux打开txt文件乱码的解决方法
查看>>
腾讯微博android授权 SharedPreferences用法
查看>>
图文详解YUV420数据格式
查看>>
nginx 【logformat】日志格式
查看>>
【Linux系列】【基础版】第四章 Shell基础之正则表达式
查看>>
JWT 在 Spring 上的实践
查看>>
释放linux缓存
查看>>