您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

.net – IronPython与原始Python的比较.我对第一个有什么期望?

5b51 2022/1/14 8:21:27 python 字数 3913 阅读 478 来源 www.jb51.cc/python

我希望学习Python,但我整天都在.Net作为C#开发人员工作,所以我决定下载并安装IronPython和集成的IronPython工作室.它与原始Python有何不同或相似之处?作为.Net开发人员,我可以期望在.Net环境中运行传统的Python脚本没有问题,或者这只是旧的迁移乌托邦?我能期待什么?提前致谢.编辑:Dic. 2009年 - IronP

概述

我希望学习Python,但我整天都在.Net作为C#开发人员工作,所以我决定下载并安装IronPython和集成的IronPython工作室.它与原始Python有何不同或相似之处?作为.Net开发人员,我可以期望在.Net环境中运行传统的Python脚本没有问题,或者这只是旧的迁移乌托邦?我能期待什么?

提前致谢.

编辑:Dic. 2009年 – IronPython最近升级到2.6.如果可能,请升级您的答案.

cpython和IronPython之间的差异(和Jython,就其而言,它与IronPython应用了与JVM相同的概念 – Jim Hugunin在他搬到微软之前很久就是Jython的创始人,在那里他发起了IronPython,两个项目现在都茁壮成长)主要是垃圾收集和线程化:IronPython和Jython依赖于他们的底层平台(因此,你得到了标记和清除垃圾收集和免费线程),cpython自己推出(因此,它主要是引用计数GC,带有mark-and – 偶尔扫描一下来解决引用循环,并且线程受全局解释器锁的阻碍).

一个编码良好的Python脚本不依赖于有问题的实现细节(它从不假设GC立即发生,从不假设操作在线程下是原子的,除了少数,如Queue.Queue的方法,明确记录为),但当然有大量的脚本在野外,是草率的.例如:

data = open('x.txt').read()

这会使文件对象保持打开状态,直到它被垃圾收集为止;在引用计数环境中,集合立即发生(因此文件尽快关闭),在标记和扫描环境中并非如此(因此使用此类结构的进程通常会错误地保留一些文件,可能是许多文件,无用地打开比他们需要的更长的时间,浪费系统资源& c).

所以,适当的Python编码是:

# needed in 2.5,unneeded but innocuous in 2.6
from __future__ import with_statement

with open('x.txt') as f: data = f.read()

这确保了在每个实现中立即关闭文件(with语句非常方便;-).

这不会影响您对Python的学习,??也不会妨碍重复使用正确编码的Python代码,但是如果您想重用编码很简单的Python代码(特别是在长时间运行的服务器,服务,守护进程和放大器中) ; c)您将来可能需要对其进行一些收紧.那么,顺便说一句,那些想要使用更新更好的cpython版本的人,比如Unladen Swallow& c,一旦这些版本实现更好的垃圾收集机制,摆脱GIL和其他增强功能;希望这已经将Python社区的“文化”改变为更正确,更少草率的编码,但当然还有大量旧的草率代码,所以需要一些小心;-).

总结

以上是编程之家为你收集整理的.net – IronPython与原始Python的比较.我对第一个有什么期望?全部内容,希望文章能够帮你解决.net – IronPython与原始Python的比较.我对第一个有什么期望?所遇到的程序开发问题。


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶