这两个 isinstances() 定义有什么区别?
what is the difference in these two isinstances() definitions?
isinstance(list(), type(mylist))
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
isinstance(list(), type(mylist))
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