这两个 isinstances() 定义有什么区别?

what is the difference in these two isinstances() definitions?

  1. isinstance(list(), type(mylist))

  2. isinstance(mylist, list)

除了速度有什么区别吗?我可以看到 2 更快。

第一个非常低效,因为您首先要创建一个新的列表对象,然后识别 my_list 的类型,然后检查它们是否相同。

第二个选项是 isinstance 函数应该如何使用。

如果使用得当,结果是一样的。但是你应该只使用第二个版本。

无需创建空对象,即 list(),也无需通过 type.

进行额外的函数调用

你这样做也有危险:

from collections import OrderedDict

array = dict()

res1 = isinstance(OrderedDict(), type(array))  # True
res2 = isinstance(array, OrderedDict)          # False