断言 isinstance 对于集合类型不能按预期工作

我写了这段代码:

def func(collection_type):
assert isinstance(collection_type,(list,set))

然后我写道:

func(collection_type=set)

我得到了断言错误


慕虎7371278
浏览 108回答 1
1回答

拉莫斯之舞

assert isinstance(collection_type,(list,set))。这将测试给定的实例是否属于(list,set)。所以尝试使用列表或设置的实例,如下所示,func(collection_type=[1, 2, 3])或func(collection_type={1, 2, 3})。在Python中,所有类都是type类的实例。所以,如果你通过了课程本身,就像func(collection_type=set). 它将检查type,因为只有(list,set)那里存在,所以它会引发断言错误。如果你想用空集进行测试,请尝试func(collection_type=set())
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python