gpt4 book ai didi

python - 将 {} 绑定(bind)到 future 版本的 dict()

转载 作者:太空宇宙 更新时间:2023-11-03 13:31:47 25 4
gpt4 key购买 nike

我正在将 Python2 代码升级为与 Python3 兼容。作为该过程的一部分,我正在使用 future 包将 Python3 行为导入 Python2。

执行此操作时,dict.keys() 方法返回一个 Python3 View 对象而不是列表,因此不再需要调用 dict.view_keys()。但是,如果字典是用 {} 创建的,则保留 Python2 的行为:

>>> from builtins import *
>>> type({'a':1, 'b':2}.keys())
<type 'list'>
>>> type(dict(a=1, b=2).keys())
<type 'dict_keys'>

有没有办法将 {} 绑定(bind)到新的 dict() 类?

最佳答案

恐怕 {} 不可更改地与解释器的字典(和集合)概念相关联。

另一方面,dict只是全局命名空间中的一个名称,可以很容易地被替换;这就是您的图书馆所做的。它不会替换内置字典的实现,它只是添加了自己的实现并使 dict() 指向它。

恐怕没有办法全面替换字典实现,包括像 **kwargs 这样的东西,以及使用 {} 的标准库的许多部分 -语法。

关于python - 将 {} 绑定(bind)到 future 版本的 dict(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46065208/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com