Cython
文章平均质量分 76
I2Cbus
这个作者很懒,什么都没留下…
展开
-
Cython基础--C结构体,枚举,以及常量在Cython中的定义和使用
C结构体,枚举,以及常量在Cython中的定义和使用1 在Cython里定义一个结构体1.1 先来看个例子: cdef struct AB: int a int b def StructTest(): cdef AB ab ab.a = 1 ab.b = 2 return ab 1.2 测试一下:>>>原创 2014-01-18 18:46:25 · 8601 阅读 · 3 评论 -
Kivy A to Z -- Kivy之Properties
Property在Kivy里是一个很重要的概念,本篇讲解了Property的使用方法以及Property的实现过程。原创 2014-07-26 22:49:05 · 3996 阅读 · 1 评论 -
Kivy a to z -- Kivy的编译过程-distribute.sh脚本分析
1 这一节重点来分析一下distribute.sh,以此来了解一下Kivy的整个编译过程2 在上一篇文章中,我们讲到编译的方法:./distribute.sh -m 'openssl pyjnius pil kivy'3 那整个过程是怎么进行的,下面来分析一下:4 首先来看下这个脚本文件的最后一行脚本:runfunction run() { check_build_dep原创 2014-04-06 20:39:50 · 3953 阅读 · 0 评论 -
Cython的学习方法
在认识Cython之前,我已经用swig写Python扩展好长一段时间了。 虽然用swig为写Python扩展提供了很大的方便,但是其易用性却仍然不是很好: 1、很多情况下要自己转换输入输出参数,如封装的一个C函数的参数中既是输入又是输出的情况,又如输入参数是一个结构体,而且结构体里的成员变量里又有指针,都必须自己写额外的代码去转换,而swig自定义的参数转换的方式原创 2014-04-15 22:25:36 · 14723 阅读 · 3 评论 -
Cython基础--Cython的类
1 Cython支持原生Python的类的定义2 同时Cython也加入封装C++类的支持3 按惯例,先上代码:3.1 rect.pyx# distutils: language = c++cdef extern from "Rectangle.h"namespace "shapes": cdef cppclass Rectangle: Rect原创 2014-02-28 21:35:54 · 6425 阅读 · 1 评论 -
Cython进阶--用Cython封装Callback函数
Cython封装Callback函数1 说明:回调函数,在C语言里是经常要用到的,但是,在Python里封装一个C的回调函数并没有想象的那么简单,本文讲解如何用Cython快速的封装C里的回调函数 2 不多说,先上代码:cdef extern from "pthread.h": ctypedef void * pthread_t ctypedef st原创 2014-01-17 19:36:55 · 6456 阅读 · 1 评论 -
Cython基础--Cython的函数
Cython的函数1 函数定义:1.1 在Cython里定义一个类C函数:1.1.1 在这里之所以说是定义一个"类C”函数,而不是一个C函数,是因为它和纯C函数的定义还是有区别的,具体看下面的例子:1.1.2 例1:cdef int Max(int a,int b): if a>b: return a else: return原创 2014-01-18 18:43:27 · 6488 阅读 · 0 评论 -
Cython基础--Cython入门
Cython入门 1 Cython是什么? 对你没有看错,是Cython,不是Python当初也我也对这个名字感到很奇怪,但是了解之后,再才知这是我一直想要的工具,比起swig,这个工具要好上很多它是一个用来快速生成Python扩展模块(extentionmodule)的工具它的语法是python语言语法和c语言语法的混血他比swig更容易编写python的扩展模块也许你会说swig可以直接通过c原创 2014-01-12 13:48:56 · 60927 阅读 · 2 评论 -
Cython基础--Cython的类型
Cython的类型1 类型定义1.1 定义一个C变量:1.1.1 在Cython里定义一个C变量和C语言类似,不同的地方就是在声明的最前面要加上cdef,另外,末尾不用加分号";“如:cdef int an[10]cdef int n = 123cdef int *pn = &nprintf("%d \n",pn[0]) 1.1.2 这里要注意原创 2014-01-18 18:40:27 · 9130 阅读 · 0 评论 -
Cython基础--Cython的语句和表达式
Cython的语句和表达式1 Cython的语句和表达式遵循的是Python的语法2 但是由于Cython融合了C语言的语法,有些区别也要注意一下:2.1 Cython里没有“->”操作符,用"."代码,这在上一节结构体的使用中己讲过2.2 Cython里没有指针的取值操作符“*”,用p[0]代替*p2.3 Cython里也有取一个变量的地址操作符&2.4 在Cython里原创 2014-01-18 18:49:27 · 4623 阅读 · 0 评论 -
Cython进阶--用Cython封装Callback函数(续)
细心的人可能已经发现了,在《Cython进阶--用Cython封装Callback函数》中,如果每次获取GIL都要调用一下PyGILState_Ensure,释放时又要调用PyGILState_Release,为了防止其它Python线程被阻塞或者因已经获取GIL的线程因在执行I/O操作而暂停,又要调用PyEval_SaveThread,函数调用完时又要调用PyEval_RestoreThrea原创 2014-01-28 20:19:03 · 3531 阅读 · 0 评论 -
Kivy a to z -- Kivy的编译环境的搭建以及编译和运行
Kivy的编译环境的搭建以及编译和运行 Kivy的官网上已经为我们准备好了VirtualBox的虚拟机镜像,下下来后在Virtualbox中运行即可,无需再自己搭建环境。https://docs.google.com/uc?export=download&confirm=no_antivirus&id=0B1WO07-OL50_bTR0SElrLTZGWEU(注意:要访问上面的链接原创 2014-04-06 20:31:32 · 10388 阅读 · 5 评论