栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从CPython迁移到Jython

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从CPython迁移到Jython

我将从其他答案和我的经验中收集的Wiki开始。随意编辑和添加内容,但请尝试遵循实用建议,而不要列出损坏的内容。这是与Jython网站不同的旧列表。

资源管理

Jython不使用引用计数,因此资源在被垃圾回收时被释放,这要晚于等效的CPython程序

  • open('file').read()
    不会自动关闭文件。更好地使用
    with open('file') as fp
    成语。
  • 在Jython代码中很晚才调用__ del __方法,而不是在删除最后一个对该对象的引用之后立即调用。

MySQL整合

mysqldb
是交流模块,因此无法在jython中使用。相反,您应该使用
com.ziclix.python.sql.zxJDBC
Jython随附的。

替换以下MySQLdb代码:

connection = MySQLdb.connect(host, user, passwd, db, use_unipre=True, chatset='utf8')

带有:

url = "jdbc:mysql://%s/%s?useUnipre=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" % (host, db)connections = zxJDBC.connect(url, user, passwd, "com.mysql.jdbc.Driver")

您还需要将全部替换

_mysql_exception
zxJDBC

最后,您需要将查询占位符从替换

%s
?

统一码

  • 您无法在Jython中表达非法的unipre字符。尝试类似的操作
    unichr(0xd800)
    会导致异常,并且
    u'ud800'
    在代码中包含文字会造成严重破坏。

遗失的东西

  • 当然,C模块不可用。
    • 所以没有NumPy或SciPy。
  • os.spawn *函数未实现。而是使用subprocess.call。

性能

  • 对于大多数工作负载,Jython将比CPython慢​​得多。报告速度要慢3到50倍。

社区

Jython项目仍然有效,但发展并不迅速。在
开发邮件列表
有一个每月20消息,并且似乎有大约只有2开发人员commiting码最近。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/668082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号