Cython是一种既可以编写c又可以编写python的编程语言,他的目标是成为一个python语言的超集,为python提供高层次的、面向对象的、函数化、动态编程功能。不同于纯粹的python,它提供一种变量类型的声明语句。Cython同时也是一个编译器,它既可以编译python也可以编译Cython语言的代码。它的目标是让pythoner编写c扩展就像写python那样简单

  Cython能够:

  • 让你的python代码编译成为c语言文件,同时也可以从c语言文件回滚到python文件
  • 通过添加类型声明,可以简单的将可读python代码转换为高效c代码
  • 在结合源码的层面上调bug
  • 能够高效的与大数据集进行交互,比如使用多维numpy数列
  • 通过使用Cython生态系统快速编写你的app
  • 能够简单的整合常用的c库和程序并用来开发

  Cython编译器能够编译绝大多数的python代码,而生成出来的c语言代码,通常在运行速度上能够获得非常明显的提升。所以在Cython语言中我们允许c语言中的部分功能存在,并将其转化为非常高效的c代码。变量类型声明语句的存在在Cython中有两个目的:将类型会动态转变的python变量转化为静态但是高效的c变量;同时也是为了能让python语言去使用那些高效的c语言函数库。Cython因此将c和python的两个体系结合到了一起,使他成为了一个非常通用的编程语言。

  这是Cython编译器的示意图             .pyx --> .c --> .so/.dll

Cython的简单示例:

首先编写一个文件名为helloworld.pyx的文件

print('hello world!')

然后我们再为它编写一个setup.py文件

from distutils.core import setup
from Cython.Build import cythonize setup(
ext_modules = cythonize("helloworld.pyx")
)

运行命令: python setup.py build_ext --inplace

这时候你会看到当前文件夹下生成了helloworld.so或者是helloworld.dll文件。

进入python的IDE,输入import helloworld试试,我们会看到hello world!的显示。

这是啥-Cython语言简单介绍的更多相关文章

  1. Scheme语言--简单介绍

    一年前事实上有时间看完SICP这本书,后来由于种种原因,一直没有继续再学.由于SICP中使用Scheme确实应用不多.在Java,C++的语言眼里,Scheme确实非常另类.现在MIT已经放弃了使用S ...

  2. R语言简单介绍

    R语言 概述 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发. R语言的 ...

  3. go语言简单介绍,增强了解

    1. Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同.但是它通过接口(interface)的概念来实现多态性.Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之 ...

  4. Tiny语言编译器简单介绍

    1.简单介绍:编译器是将一种语言翻译成还有一种语言的程序.编译器将源程序的代码作为输出,从而产生用目标语言编写的等价程序.比如源码为C/C++等高级语言,那么目标语言就是目标机器的机器代码.也就是能够 ...

  5. 《R语言入门》语言及环境简单介绍

    简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...

  6. R语言的帮助使用和图形功能简单介绍

    R语言的帮助使用和图形功能简单介绍 R语言帮助,在Windows桌面下,有很多种.最长使用的是在命令行下help() > help.start() 会在浏览器中,打开帮助的主页 watermar ...

  7. HDFS简单介绍及用C语言訪问HDFS接口操作实践

    一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广 ...

  8. Python常用的库简单介绍一下

    Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...

  9. iOS-iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

随机推荐

  1. php获取数组第一个值 current()

    获取数组第一个元素的值,如果是数字索引那还好,直接$array[0],如果键名是字符串,你又未知这个字符串呢?用current()函数就可以做到. current() 函数返回数组中的当前元素(单元) ...

  2. Fragment与FragmentActivity的关系

    前阵用viewpaper+fragment做滑动引导,查阅了下网上的资料,发现在有两种做法,一个是自建类直接继承Activity另一种是继承FragmentActivity,很是迷惑,在查了些goog ...

  3. 【代码笔记】iOS-给UIImageView加上圆角效果

    一,效果图. 二,代码. RootViewController.m #import "RootViewController.h" @interface RootViewContro ...

  4. GCD同步异步 串行并行大解析

    /** 核心概念 任务:block里需要执行的操作 队列:把任务添加进入队列中,按照先进先出的原则来执行任务  串行队列:一个一个的执行 并行队列:可以让多个任务并发(同时)执行(自动开启多个线程同时 ...

  5. IOS 如何隐藏tabbar

    系统自带的UITabBarController有时候到不到要求,需要自定义样式. 有一种方法就是在TabBar上面在放一层自己的,正好把原来的遮住. 那么,从Tab进入子的Controller想要隐藏 ...

  6. iOS-H5学习篇-02

    H5-自学笔记-2016年09月06日 一:各种标签的练习 Html和CSS的关系 学习web前端开发基础技术需要掌握:HTML.CSS.JavaScript语言. 1.1.1. HTML是网页内容的 ...

  7. 初次使用 git 的“核弹级选项”:filter-branch 从仓库中删除文件

    当初看 Pro Git 时就被作者这个“核弹级选项”的称呼吓到了,因此一直没敢好奇地去尝试.核弹啊,用对了威力无穷,用错了破坏力无穷! 但是,今天,我不得不用了,因为我想把我的原来写一些代码放到 gi ...

  8. 开源游戏“2048”IOS移植版

    简介: 这个游戏是我在今年(2014/05)课余时闲着无聊做的一个益智类小游戏,总共花了4个工作日才完成,为了游戏的效率,做了很多优化,目前在IE5以上浏览器能够流畅运行,运行时如果屏幕分辨率不兼容, ...

  9. winform ListView应用之分组、重绘图标、网格线 (c# .net winform)

    最近在winform应用中需要用到可分组的数据列表功能,DataGridView默认没有提供分组的功能,而OutlookGrid(http://www.codeproject.com/KB/grid/ ...

  10. XCLNetTools1.0(ASP.NET常用类库)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 2016-01-01开放所有源代码: 项目地址:https://github.com/xucongli1989/XCLNetTools 下载地址: ...