专栏名称: python
隔天更新python文章,我希望用我的努力换来劳动的成果帮助更多的人掌握一门技术,因此我要更加努力。
目录
相关文章推荐
Python开发者  ·  “李飞飞团队50 美元炼出 ... ·  昨天  
Python爱好者社区  ·  史上最强!PINN杀疯了 ·  昨天  
Python爱好者社区  ·  英伟达憾失DeepSeek关键人才?美国放走 ... ·  昨天  
Python爱好者社区  ·  多模态,杀疯了 ·  2 天前  
Python开发者  ·  请立即拿下软考证书(政策风口) ·  4 天前  
51好读  ›  专栏  ›  python

系列:Python扩展模块(2)

python  · 公众号  · Python  · 2017-04-02 20:01

正文


一、 用兼容层封装数据类型

在这之前首先先思考一个问题,我们调用的C语言的函数,那么传进去的数据也一定要满足C语言的规范。虽然Python底层是C,但是做了高度抽象封装。那么它还符不符合C的要求呢?

首先,我们来看个例子,看看如果不利用兼容层会有什么问题:


Python学习交流 330637182 群内每天更新相关资料

果不其然,就这么报错了!看样子其中有一些任然可以,有一些就不符合要求了。

其实,除了整数,字符串和字节对象以外的所有Python类型必须要通过它们相应的ctypes类型来包装,因此我们可以用兼容层将他们封装成需要的C数据类型。

在来看看如下的代码:


Python学习交流 330637182 群内每天更新相关资料

我们使用 c_double 类型封装了我们的浮点数。果不其然,我们就可以正确运行我们的代码了。看样子,兼容层,帮我们做了一些事情。

那么究竟兼容层棒我们做了什么呢?我们能不能利用这个机制传递我们自定义的类型呢?当然是有办法的!

二、 自定义类型

话不多说,直接上代码:

Python学习交流 330637182 群内每天更新相关资料

看来我们给的这个Flasks类型完全可以传入,果然有这么一种机制。







请到「今天看啥」查看全文