我有这个功能:
def fun(keywords: list[str] = None):
如何分别检查:
1.如果keywords
未通过
1.如果keywords
是空列表
1.如果keywords
不是列表
我试过这个:
if not keywords:
raise ValueError("not passed")
if not isinstance(keywords, list):
raise TypeError("keywords must be an list")
if isinstance(keywords, list) and (not bool(len(keywords))):
raise ValueError("empty list passed")
第一个if
在两种情况下运行(1.(2)在条件
if isinstance(keywords, list) and (not bool(len(keywords))):
raise ValueError("empty list passed")
代码不被执行。在第一个条件中添加以下内容是否是一种良好的做法:
if not keywords and keywords != []:
raise ValueError("not passed")
1条答案
按热度按时间kkbh8khc1#
与
None
比较,判断它是否未通过:您不需要在最后一个
if
中进行isinstance()
检查,因为前一个if
已经检查过了。