Python 3.9来了!这十个新特性值得关注( 二 )


关于多进程库的改进 , Python 3.9 向 multiprocessing.SimpleQueue 类添加了新方法 close() 。
此方法可以显式地关闭队列 。 这将确保队列关闭并且停留时间不会比预期长 。 值得注意的是 , 一旦关闭队列 , 就不能调用 get()、put() 和 empty() 方法 。
8. 统一的软件包导入错误
Python3.9 之前的版本在导入 Python 库时存在的主要问题是:当相对导入超出其顶级包时 , Python 中的导入行为不一致 。
builtins.__import__() 引发 ValueError , 而 importlib.__import__() 引发 ImportError 。 Python3.9 版本进行了修复 , 它将统一引发 ImportError 。
9. 生成随机字节
Python 3.9 版本中添加了新的函数 random.Random.randbytes() 。 该函数可用于生成随机字节 。
Python 支持生成随机数 , 但如果需要生成随机字节呢?在 Python3.9 版本之前 , 开发人员必须想方设法生成随机字节 。 尽管他们可以使用 os.getrandom()、os.urandom() 或者 secrets.token_bytes() 来生成随机字节 , 但这些方法无法生成伪随机模式 。
为了确保随机数的产生符合预期行为 , 并且过程可复现 , 开发人员通常将种子(seed)与 random.Random 模块一起使用 。 因此 , Python 3.9 添加了 random.Random.randbytes() 方法 , 以可控的方式生成随机字节 。
10. 修复字符串替换函数
在 Python 3.9 版本之前 , 对于所有非零的 n , "".replace("",s,n) 返回空字符串而不是 s 。 这个错误使用户困惑 , 并导致应用程序的不一致行为 。
Python 3.9 修复了该问题 , 不管 n 是否为 0 , 其结果都与 "".replace("", s) 一致 。
【Python 3.9来了!这十个新特性值得关注】如果大家想深入了解更多细节 , 请查阅官方文档: