下载之家:安全、高速、放心的绿色下载站!

当前位置:首页软件下载应用软件详细列表

IronPython V2.7.7 官方版

  • 软件介绍
  • 下载地址
  • 同类推荐
  • 相关文章

IronPython是Python和.NET平台的有机结合,除去.NET,IronPython与Python并没有什么区别;在新版本中,对于浮点数和Decimal类,数值处理在许多方面都得到了改进,标准库有一些有用的补充,例如一个大大增强的unittest模块,用于解析命令行选项的argparse模块,在collections模块中方便的OrderedDict和Counter类,以及许多其他改进;用于解析命令行参数的argparse模块被添加为optparse模块的更强大的替代品,这意味着Python现在支持三种不同的模块来解析命令行参数:getopt,optparse和argparse;getopt模块非常类似于C库的getopt函数,所以如果用户编写一个最终将在C中重写的Python原型它仍然有用optparse变得多余,但是没有计划删除它因为有很多脚本 仍在使用它,并没有自动更新这些脚本的方法;记录模块非常灵活;应用程序可以定义日志记录子系统树,此树中的每个记录器都可以过滤掉某些消息,对它们进行不同的格式化,并将消息定向到不同数量的处理程序;强大又实用,需要的用户可以下载体验

IronPython V2.7.7 官方版

IronPython软件功能

新的'with'语句将使编写清理代码更容易

现在可以将值传递到生成器(PEP 342:新生成器功能部分)。

进口可以是绝对的或相对的(PEP 328:绝对和相对进口部分)。

更好地处理异常处理的一些极端情况(PEP 341部分:Unified try / except / finally)。

所有这些改进都是值得的,但它们是对一种特定语言特征的改进;它们都不是对Python语义的广泛修改。

IronPython软件特色

IronPython 的变化是语言和库改进的有趣组合。我认为,库增强对于Python的用户社区将更为重要,因为添加了几个广泛使用的包。

新模块包括用于XML处理的ElementTree(xml.etree),SQLite数据库模块(sqlite)和用于调用C函数的ctypes模块。

语言变化具有中等意义。添加了一些令人愉快的新功能,但其中大部分都不是您每天都会使用的功能。

条件表达式最终使用新颖的语法添加到语言中

IronPython使用说明

所有这些灵活性都需要大量配置。您可以编写Python语句来创建对象并设置其属性,但复杂的设置需要冗长但无聊的代码。 logging还支持解析文件的fileConfig()函数,但文件格式不支持配置过滤器,并且以编程方式生成更加混乱。

Python 2.7添加了一个dictConfig()函数,该函数使用字典来配置日志记录。有许多方法可以从不同的来源生成字典:用代码构造一个字典;解析包含JSON的文件;或者使用YAML解析库(如果已安装)。有关更多信息,请参阅配置功能

以下示例配置两个记录器,根记录器和名为“network”的记录器。发送到根记录器的消息将使用syslog协议发送到系统日志,并且发送到“network”记录器的消息将写入network.log文件,该文件将在日志达到1MB后轮换。

IronPython V2.7.7 官方版

IronPython V2.7.7 官方版

记录模块的三个较小的增强功能全部由Vinay Sajip实现,它们是:

SysLogHandler类现在支持TCP上的syslogging。 构造函数有一个socktype参数,给出要使用的套接字类型,UDP的socket.SOCK_DGRAM或TCP的socket.SOCK_STREAM。 默认协议仍为UDP。

Logger实例获得了一个getChild()方法,该方法使用相对路径检索后代记录器。 例如,一旦通过执行log = getLogger('app')检索记录器,调用log.getChild('network.listen')等同于getLogger('app.network.listen')。

LoggerAdapter类获得了一个isEnabledFor()方法,该方法获取一个级别并返回基础记录器是否将处理该重要级别的消息。

IronPython V2.7.7 官方版

词典方法keys(),values()和items()在Python 3.x中是不同的。 它们返回一个称为视图的对象,而不是完全实现的列表。

在Python 2.7中无法更改keys(),values()和items()的返回值,因为太多代码会中断。 而是在新名称viewkeys(),viewvalues()和viewitems()下添加了3.x版本。

IronPython V2.7.7 官方版

视图可以迭代,但键视图和项视图也像集一样。 &运算符执行交集和| 执行联盟:

IronPython V2.7.7 官方版

在修改字典时,视图会跟踪字典及其内容的变化:

但是,请注意,在迭代视图时无法添加或删除键:

您可以使用Python 2.x代码中的视图方法,2to3转换器将它们更改为标准keys(),values()和items()方法。

memoryview对象提供了另一个对象的内存内容的视图,该内容与字节类型的接口相匹配。

IronPython V2.7.7 官方版

视图的内容可以转换为字节字符串或整数列表:

memoryview对象允许修改底层对象(如果它是一个可变对象)。

IronPython V2.7.7 官方版

对核心Python语言进行的一些较小的更改是:

IronPython V2.7.7 官方版

set literals的语法已从Python 3.x反向移植。使用卷曲括号来包围所得到的可变集的内容;通过不包含冒号和值来设置文字与字典的区别。 {}继续代表一个空字典;将set()用于空集。

IronPython V2.7.7 官方版

由Alexandre Vassalotti向后移植;问题2335。

IronPython V2.7.7 官方版

字典和集合理解是从3.x反向移植的另一个特性,概括了列表/生成器理解,以使用集合和字典的文字语法。

由Alexandre Vassalotti向后移植;问题2333。

IronPython V2.7.7 官方版

with语句现在可以在一个语句中使用多个上下文管理器。上下文管理器从左到右处理,每个上下文管理器都被视为开始一个新的with语句。这意味着:

IronPython V2.7.7 官方版

contextlib.nested()函数提供了一个非常相似的函数,因此不再需要它并且已被弃用。

现在,在大多数平台上,浮点数和字符串之间的转换已正确舍入。这些转换发生在许多不同的地方:浮点数上的str()和复数;浮动和复杂的构造函数;数字格式;使用marshal,pickle和json模块序列化和反序列化浮点数和复数;在Python代码中解析float和imaginary文字;和十进制到浮点转换。

与此相关,浮点数x的repr()现在返回基于最短十进制字符串的结果,该最小十进制字符串保证在正确的舍入下舍入到x(具有舍入到半舍入到舍入模式)。以前它给出了一个基于舍入x到17个十进制数字的字符串。

负责此改进的舍入库可在Windows和Unix平台上使用gcc,icc或suncc编译器。可能存在少量平台,其中无法保证此代码的正确操作,因此代码不在此类系统上使用。您可以通过检查sys.float_repr_style来查找正在使用的代码,如果新代码正在使用,它将很短,如果不是,则会遗留。

由Eric Smith和Mark Dickinson实施,使用David Gay的dtoa.c库;问题7117。

从长整数和常规整数到浮点的转换现在轮流不同,返回最接近数字的浮点数。这对于可以精确转换的小整数无关紧要,但对于不可避免地会失去精度的大数,Python 2.7现在更接近于近似。

整数除法在舍入行为方面也更准确。 (也由Mark Dickinson执行;问题1811.)

对复数的隐含强制已被删除; 解释器将不再尝试在复杂对象上调用__coerce __()方法。 (由Meador Inge和Mark Dickinson删除;问题5211.)

IronPython V2.7.7 官方版

str.format()方法现在支持替换字段的自动编号。 这使得使用str.format()更接近使用%s格式:

自动编号从左到右采用字段,因此第一个{...}说明符将使用str.format()的第一个参数,下一个说明符将使用下一个参数,依此类推。您不能混合使用自动编号和显式编号 - 要么为所有说明符字段编号,要么不编号 - 但您可以混合使用自动编号和命名字段,如上面的第二个示例所示。 (由Eric Smith提供;问题5237.)

现在,复数正确支持format()的使用,默认为右对齐。指定精度或逗号分隔适用于数字的实部和虚部,但指定的字段宽度和对齐应用于整个生成的1.5 + 3j输出。 (供稿人:Eric Smith;第1588期和第7988期。)

'F'格式代码现在总是使用大写字符格式化其输出,因此它现在将生成'INF'和'NAN'。 (供稿人:Eric Smith;第3382期。)

低级更改:对象.__格式__()方法现在会触发PendingDeprecationWarning,如果它传递了格式字符串,因为对象的__format __()方法将对象转换为字符串表示形式并对其进行格式化。以前,该方法将格式字符串静默应用于字符串表示,但这可能会隐藏Python代码中的错误。如果您提供格式化信息(如对齐或精度),可能您希望以某种特定于对象的方式应用格式。

如果绝对导入(例如来自.os import sep)失败,则import语句将不再尝试相对导入。这修复了一个错误,但可能会破坏某些只是偶然发生的导入语句。 (由Meador Inge修正;发行7902.)

现在,内置unicode类型的子类可以覆盖__unicode __()方法。 (由Victor Stinner实施;问题1583863.)

bytearray类型的translate()方法现在接受None作为其第一个参数。 (由Georg Brandl修正;发行4759.)

当使用@classmethod和@staticmethod将方法包装为类或静态方法时,包装器对象现在将包装函数公开为它们的__func__属性。 (由George Sakkis提出建议后由Amaury Forgeot d'Arc提供;问题5982.)

当使用__slots__设置一组受限制的属性时,删除未设置的属性不会像您期望的那样引发AttributeError。本杰明彼得森修正;问题7604.)

现在支持两种新的编码:“cp720”,主要用于阿拉伯文;和“cp858”,CP 850的变体,添加欧元符号。 (CP720由Alexander Belchenko和Amaury Forgeot d'Arc在1616979号发行; CP858由Tim Hatch在8016号发行。)

当尝试在POSIX平台上打开目录时,文件对象将在IOError异常上设置filename属性(由Jan Kaliszewski注释;问题4764),现在显式检查和禁止写入只读文件对象而不是信任C库捕获并报告错误(由Stefan Krah修复;问题5677)。

Python标记生成器现在自己转换行结尾,因此compile()内置函数现在使用任何行结束约定接受代码。此外,它不再需要代码以换行符结尾。

函数定义中的额外括号在Python 3.x中是非法的,这意味着您从def f((x))得到语法错误:pass。在Python3警告模式下,Python 2.7现在将警告这种奇怪的用法。 (James Lingard注意到;问题7362.)

现在可以创建对旧式类对象的弱引用。新式课程总是弱参考。 (由Antoine Pitrou修正;问题8268.)

当模块对象被垃圾收集时,模块的字典现在只有在没有其他人持有对字典的引用时才被清除

新的环境变量PYTHONWARNINGS允许控制警告。它应设置为包含警告设置的字符串,相当于与-W开关一起使用的字符串,以逗号分隔。 (由Brian Curtin提供;问题7301.)

例如,以下设置将在每次发生时打印警告,但将Cookie模块中的警告转为错误。 (设置环境变量的确切语法因操作系统和shell而异。)

添加了几项性能增强功能:

添加了一个新的操作码来执行with语句的初始设置,查找__enter __()和__exit __()方法。 (供稿人:本杰明彼得森。)

垃圾收集器现在对一种常见的使用模式表现更好:当分配许多对象而不释放任何对象时。这之前需要二次时间进行垃圾收集,但现在随着堆上对象数量的增加,完全垃圾收集的数量会减少。当中间一代被收集10次并且来自中间世代的幸存者对象的数量超过最老一代中对象数量的10%时,新逻辑仅执行完全垃圾收集传递。 (MartinvonLöwis建议并由Antoine Pitrou执行;问题4074.)

垃圾收集器试图避免跟踪不能成为循环一部分的简单容器。在Python 2.7中,对于包含原子类型(例如整数,字符串等)的元组和dicts,现在都是如此。传递上,也不会跟踪包含原子类型元组的字典。这有助于通过减少收集器要考虑和遍历的对象数来降低每个垃圾收集的成本。 (由Antoine Pitrou提供;问题4688.)

现在,长整数存储在基础2 ** 15或基础2 ** 30中,基数在构建时确定。以前,它们总是存放在基地2 ** 15中。使用base 2 ** 30可以在64位计算机上显着提升性能,但32位计算机上的基准测试结果却有所不同。因此,默认情况下,在64位计算机上使用base 2 ** 30,在32位计算机上使用base 2 ** 15;在Unix上,有一个新的配置选项--enable-big-digits,可用于覆盖此默认值。

除了性能改进之外,这个更改对于最终用户来说应该是不可见的,但有一个例外:出于测试和调试目的,有一个新的structseq sys.long_info,它提供有关内部格式的信息,给出每位数的位数和以字节为单位的大小用于存储每个数字的C类型

下载声明

推荐使用[迅雷]下载,使用 [360压缩]解压本站软件。

本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。

本站提供的[IronPython V2.7.7 官方版]资源来源互联网,版权归该下载资源的合法拥有者所有。