高硼硅设计用于创建C语言编写的代码Python扩展模块的语言。
它的设计弥补的Python和漂亮的,高层次的差距,易于使用的世界C的凌乱,低级别的世界
对于基本类型,如数字和字符串,这是不是太糟糕,但任何更详细和你进入采摘Python对象除了使用Python / C API调用,这需要你小心翼翼的维护引用计数,检查错误步步为营,并妥善清理,如果有什么差错
什么是此版本的新:
- 在用于连接某些功能用C ++代码在此版本中相继出台。
- 高硼硅不再场所捕获的异常进入线程状态。这保证了异常和回溯不会泄漏出来的,除了条款,引起了他们,除非你做一些事来明确保存它们。
- 在目前,一个参数一个Python函数声明为一个扩展类型将默认情况下,被允许领取价值无;为防止这种情况,你必须限定参数声明与'不无'。
- 现在可以用不参与循环垃圾收集Python的属性定义和外延式,采用了全新nogc选项。
- 为size_t现在是一个内置的类型和是由sizeof操作返回的类型。此外,为size_t和Py_ssize_t的大小现在假设某处长,很长很长的。
- 在同一职级的两个int类型之间的操作现在返回一个无符号的结果,如果任一操作数是无符号;如果行列不同,其结果具有相同的类型更广泛的排名操作数。我觉得这是ANSI C的规则,有可能不知道类型的确切大小的最佳逼近。
- PyString_InternFromString现在的名义下cintern而不是暴露实习生,因为它不是针对Python实习生功能完全替代(它不能处理含空字节的字符串)。
- 导入扩展类型时,先前生成的大小检查已被禁用暂时直到我能想到的更好的东西。它产生太多的误报,比如从不同版本的numpy的。
- 现在支持__fastcall调用约定选项。此外,耐热不再假定__cdecl是默认调用约定。被认为是兼容的,两个函数类型必须被用相同的调用约定声明的,或者两者都必须离开它未指定的。
- 正如我一直威胁了一段时间,使用__new__作为扩展型的初始化方法的名字已经成为一个错误,而不是只是一个警告。在未来的版本中,将__new__重新出现更多的类Python的语义。
限制:
没有发现
评论没有发现