登录  /  注册

黑马云课堂8天深入理解Python视频资料

巴扎黑
发布: 2017-08-25 14:53:19
原创
2099人浏览过

Python, 是一种面向对象、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。 Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。 Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。 Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。《黑马云课堂8天深入理解Python视频教程》带你深入理解Python语言。

593ce5b5a73cb663.jpg

视频播放地址://m.sbmmt.com/course/556.html

本视频的难点在于对C/C++的调用:

1、Python调用C动态链接库


        Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。
(1)C语言文件:pycall.c

/***gcc -o libpycall.so -shared -fPIC pycall.c*/  #include  #include  
int foo(int a, int b)  
{  
 printf("you input %d and %d\n", a, b);  
 return a+b;  
}  

(2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern "C"来进行编译。

(3)Python调用动态库的文件:pycall.py
import ctypes  
ll = ctypes.cdll.LoadLibrary  
lib = ll("./libpycall.so")    
lib.foo(1, 3)  
print '***finish***'  

(4)运行结果:

2、Python调用C++(类)动态链接库 

       需要extern "C"来辅助,也就是说还是只能调用C函数,不能直接调用方法,但是能解析C++方法。不是用extern "C",构建后的动态链接库没有这些函数的符号表。
(1)C++类文件:pycallclass.cpp

#include  
using namespace std;  
 
class TestLib  
{  
   public:  
       void display();  
       void display(int a);  
};  
void TestLib::display() {  
   cout}  
 
void TestLib::display(int a) {  
   cout}  
extern "C" {  
   TestLib obj;  
   void display() {  
       obj.display();  
     }  
   void display_int() {  
       obj.display(2);  
     }  
}

(2)g++编译生成动态库libpycall.so:g++ -o libpycallclass.so -shared -fPIC pycallclass.cpp。

(3)Python调用动态库的文件:pycallclass.py

import ctypes  
so = ctypes.cdll.LoadLibrary  
lib = so("./libpycallclass.so")  
print 'display()'  lib.display()  
print 'display(100)'  lib.display_int(100)

老师讲课轻松诙谐,学生学起来无压力。由浅入深,深入浅出,轻松欢快是这个老师的整体映像。

以上就是黑马云课堂8天深入理解Python视频资料的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号