这是啥-Cython语言简单介绍
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语言简单介绍的更多相关文章
- Scheme语言--简单介绍
一年前事实上有时间看完SICP这本书,后来由于种种原因,一直没有继续再学.由于SICP中使用Scheme确实应用不多.在Java,C++的语言眼里,Scheme确实非常另类.现在MIT已经放弃了使用S ...
- R语言简单介绍
R语言 概述 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发. R语言的 ...
- go语言简单介绍,增强了解
1. Go语言没有类和继承的概念,所以它和 Java 或 C++ 看起来并不相同.但是它通过接口(interface)的概念来实现多态性.Go语言有一个清晰易懂的轻量级类型系统,在类型之间也没有层级之 ...
- Tiny语言编译器简单介绍
1.简单介绍:编译器是将一种语言翻译成还有一种语言的程序.编译器将源程序的代码作为输出,从而产生用目标语言编写的等价程序.比如源码为C/C++等高级语言,那么目标语言就是目标机器的机器代码.也就是能够 ...
- 《R语言入门》语言及环境简单介绍
简单介绍 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/diss ...
- R语言的帮助使用和图形功能简单介绍
R语言的帮助使用和图形功能简单介绍 R语言帮助,在Windows桌面下,有很多种.最长使用的是在命令行下help() > help.start() 会在浏览器中,打开帮助的主页 watermar ...
- HDFS简单介绍及用C语言訪问HDFS接口操作实践
一.概述 近年来,大数据技术如火如荼,怎样存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有很广 ...
- Python常用的库简单介绍一下
Python常用的库简单介绍一下fuzzywuzzy ,字符串模糊匹配. esmre ,正则表达式的加速器. colorama 主要用来给文本添加各种颜色,并且非常简单易用. Prettytable ...
- iOS-iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...
随机推荐
- 2015年免费的25款 WordPress 网站模板
2015年 WordPress 插件和主题的数量继续在增长.这一年,我们可以期待WP主题引入一些新的技术,从背景,自适应响应式图像到从背景图片中提取主色. 本文包含25款最近发布的 WordPress ...
- Click Magick – 下一代点击跟踪和链接管理
Click Magick 是新一代的广告跟踪和链接管理系统,让每一个点击都能给你带去更多的利润.它是专门设计来跟踪所有类型的点击计费广告,包括从谷歌,必应和 Facebook 的 PPC 广告,就好像 ...
- 定制Eclipse IDE之功能篇(一)
上文回顾:定制Eclipse IDE之界面篇 这一篇文章将记录一些Eclipse插件拓展(extension),简单讲述常用拓展的用法,但可能不会那么详细. 我的主要插件的拓展如下: 一.or ...
- HtmlAgilityPack---Html解析框架
如果你想从一段HTML中提取出指定的标记(如:获取所有的div.获取具有指定属性的元素)如果你想编辑一段HTML,修改里面的部分元素如果你想判断一段HTML中指定元素的关系(子节点.父节点.兄弟节点. ...
- CSS 选择器 关系
常见的基于关系的选择器 选择器 选择的元素 A E 元素A的任一后代元素E (后代节点指A的子节点,子节点的子节点,以此类推) A > E 元素A的任一子元素E(也就是直 ...
- VSS提示"Could not find the Visual SourceSafe Internet Web Service connection information for the specified database
转自:http://www.cnblogs.com/qqflying/archive/2007/12/18/1004051.html VSS连接错误提示: ====================== ...
- Android的系统属性SystemProperties
创建与修改android属性用Systemproperties.set(name, value) 获取android属性用Systemproperties.get(name) 注意:android属性 ...
- oc程序编译【-framework Foundation 编译】
第一种编译 第二种编译 -framework Foundation 编译
- mac 终端 常用指令
开始正式研究ios 应用开发,由于是从C开始学起,所以学习下常用的mac终端指令,方便后续常用操作. mac 终端 常用指令: 1.ls指令 用途:列出文件 常用参数 -w 以简洁的形式列出所有文件和 ...
- 网络编程4--毕向东java基础教程视频学习笔记
Day24 06 自定义浏览器-Tomcat服务端07 自定义图形界面浏览器-Tomcat服务端08 URL-URLConnection09 小知识点10 域名解析 06 自定义浏览器-Tomcat服 ...