Python 3.10的可迭代属性是否与Python 3.8不同?

amrnrhlw  于 2022-12-15  发布在  Python
关注(0)|答案(2)|浏览(536)

我在Python3.10.6中遇到此错误

isinstance(pattern, collections.Iterable):
AttributeError: module 'collections' has no attribute 'Iterable'

在一个我没有写过的重要的和关键的遗留程序中(这是另一个产品的构建系统)。它在3.8.10中运行良好。这个错误破坏了Linux下GitHub CI的构建。看起来他们几天前升级了Python。有人有修复它的建议吗?

9rygscc1

9rygscc11#

我在python3.10和python3.8中尝试了下面的代码,似乎两者都能正常工作:

try:
    # python 3.10
    from collections.abc import Iterable
except ImportError:
    # if failed, fall back to python 3.8
    from collections import Iterable

pattern = [1, 2, 3]

print(isinstance(pattern, Iterable))

结果:

True
wlzqhblo

wlzqhblo2#

集合。abc. Python 3.8和Python 3.10的可迭代工作

相关问题