我有2个代码段来检查函数参数的数据类型。
第一个使用打字
def write_str(str1: str, file1_str: str):
return None
第二个使用assert
。
def write_str(str1, file1_str):
assert (type(str1) == str and type(file1_str) == str)
return None
python键入是否不需要使用断言检查?哪个代码段更好地捕获了错误?
我正在使用python v3.7
注解方法(1st)在传递错误的类型时不会引发错误。
因此第二种方法更好,但是仍然可以改进:
def write_str(str1, file1_str):
assert (isinstance(str1, str) and isinstance(file1_str, str))
return None
如果传递从str
继承的对象,这也将起作用。尽管在此并不真正相关,但通常建议将isinstance
胜过type
。