当前位置: 首页 > news >正文

平谷手机网站建设月夜直播免费完整版观看

平谷手机网站建设,月夜直播免费完整版观看,网站建设题目以及答案,安卓app公司开发python是一门艺术语言#xff0c;除了开发桌面程序#xff0c;还能够开发网络应用#xff0c;数据库应用#xff0c;还可以代替shell编写一些的实用脚本#xff0c;本文主要讲述了如何利用 python 程序控制你的 C 程序的行为。 作为例子#xff0c;本文将用 python 和 C …python是一门艺术语言除了开发桌面程序还能够开发网络应用数据库应用还可以代替shell编写一些的实用脚本本文主要讲述了如何利用 python 程序控制你的 C 程序的行为。 作为例子本文将用 python 和 C 语言来编写示例代码同时也会顺便介绍一下 利用 C 语言扩展 python的方法最后会给出完整的 C 编写 python 模块的源码。 首先考虑以下应用假设你需要在项目中实现字符串排序比较的功能但是事先并不确定应该如何排序再次假设一下如果某字符串中如果出现了 “aaa”, bbb 这样的子串就将该字符串排在靠后的位置此时如果用 C 语言实现了预定义的排序功能那么万一某天需要改变字符串排序行为就必须重新编写 C 程序的实现并且再次编译项目这样会浪费大量的精力相反如果将字符串排序的功能用 python 代码控制即如何排序由python程序定义这样将大大提高程序的灵活性。 以下就是示例程序程序由 python 脚本和 C 编译的 python 模块组成python 实现字符串比较功能为了简化期间本文只是先两个字符串大小的比较用于说明 python控制程序行为已经足够程序采用回调函数实现完整代码如下 python模块 /** * * Filename: ext.c * * Description: * * Version: 0.1.0 * Created: 09/16/2011 05:44:40 PM * Revision: r1 * Compiler: gcc * * Author: Fu Haiping * Company: ICT * * */#includestaticPyObject*my_callbackNULL;staticPyObject*_set_callback(PyObject*self, PyObject*args) { PyObject*resultNULL; PyObject*temp;if(PyArg_ParseTuple(args,O,temp)) {if(!PyCallable_Check(temp)) { PyErr_SetString(PyExc_TypeError,parameter must be callable);returnNULL; } Py_XINCREF(temp);/*Add a reference to new callback*/Py_XDECREF(my_callback);/*Dispose of previous callback*/my_callbacktemp;/*Remember new callback*//*Boilerplate to return None*/Py_INCREF(Py_None); resultPy_None; }returnresult; }staticint_compare(constchar*a,constchar*b) {longret; PyObject*arglist; PyObject*resultNULL; arglistPy_BuildValue((ss), a, b); resultPyEval_CallObject(my_callback, arglist); retPyInt_AsLong(result);if(resultNULL)return-1; Py_DECREF(result);returnret; }voidcompare(constchar*a,constchar*b) {if(_compare(a, b)0) { printf(arg1 is greater than arg2\n); }elseif(_compare(a, b)0) { printf(arg1 is NOT greater than arg2\n); }else{ printf(arg1 is equal to arg2\n); } }staticPyObject*_compare_callback(PyObject*self, PyObject*args) {constchar*aNULL,*bNULL;if(!PyArg_ParseTuple(args,ss,a,b)) {returnNULL; } compare(a, b); Py_INCREF(Py_None);returnPy_None; }staticPyMethodDef extMethods[]{ {setcmp, _set_callback, METH_VARARGS}, {compare, _compare_callback, METH_VARARGS}, {NULL, NULL} };voidinitext() { Py_InitModule(ext, extMethods); } setup.py 文件 fromdistutils.coreimportsetup, Extension module1Extension(ext, sources[ext.c]) setup (nameext, version1.0, descriptionThis is a demo package, ext_modules[module1]) 执行过程 $ python Python2.6.6(r266:84292, Sep152010,15:52:39) [GCC4.4.5] on linux2 Typehelp,copyright,creditsorlicenseformore information.importextdefcompare(a, b): ...if(ab): ...return-1...if(a ...return1...if(ab): ...return0 ...setcmp(compare) Traceback (most recent call last): File, line1,inNameError: namesetcmpisnotdefinedext.setcmp(compare)ext.compare(aaa,bbb) arg1isgreater than arg2 上述执行过程中我们利用了 pythoon 的 compare函数该函数实现字符串的比较如果 a b, 返回 -1a b, 返回1, a b, 返回0, 这和我们平常的比较方式相反所以最后的结果中我们可以看到比较 aaa, bbb 时aaa 会比 “bbb” 大。 如果使用 python 定义我们常规的字母排序的比较函数会看到如下执行结果 defcompare_ex(a, b): ...if(ab): ...return1...if(a ...return-1...if(ab): ...return0 ...ext.setcmp(compare_ex)ext.compare(aaa,bbb) arg1isNOT greater than arg2 此时aaa 就比 bbb 小。 结论以上只是一个小小的尝试python的灵活性远远不止如此Haippy会继续探索 python的一些有趣的特性和使用方法请关注本博客后续文章。:-)
http://www.zqtcl.cn/news/798837/

相关文章:

  • 福州高端网站制作网站建设项目单子来源
  • 网站制作的行业广州网站推广方案
  • 网站主域名建设通怎么样
  • 网站是如何建立的广告设计与制作工作内容
  • 网站优化课程培训公司取名生成器免费
  • 如何设立网站做外国网站买域名
  • 惠州网站建设公司排名聊城专业网站设计公司
  • 网站建设龙岗电子商务有限公司官网
  • 分栏型网站服装设计网站模板
  • 建设网站备案与不备案区别企业网站怎么做排名
  • php mysql的网站开发html网站制作答辩ppt
  • 网站制作有名 乐云践新专家网页制作公司需要什么资质
  • 织梦怎么用框架实现在浏览器的地址栏只显示网站的域名而不显示出文件名电脑网站模板
  • 北京网络营销网站品牌营销增长公司哪家好
  • 网站反链有好处吗稷山网站建设
  • 廊坊网站群发关键词怎么在百度上推广自己的公司信息
  • 网站开发 沈阳免费模板建站
  • 商业性质网站建设步骤wordpress电影网盘
  • 网站的外部推广成都房产网官网
  • 深圳网站建设创想营销北京土巴兔全包装修价格表
  • 怎么发布php网站邯郸建设网站制作
  • 手机网站做多宽的图片wordpress顶部导航栏怎么创建
  • 如何做招聘网站的数据分析安徽黄山旅游攻略
  • 2022建站市场国际新闻直播
  • 茗哥网站建设装饰公司网站规划方案
  • 北京天津网站建设公司做平台网站要多久
  • 做我女朋友的表白句的网站做seo_教你如何选择网站关键词
  • 如何对网站用户分析徐州网站制作如何定位
  • 网站定制生成器龙岗网站设计讯息
  • 镇江市建设工程网站蜘蛛爬取网站