我有两段代码来检查函数参数的数据类型。
第一段使用类型
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的类型化是否使得断言检查的使用变得没有必要?哪个代码段能更好地抓到bug?
我使用的是python v3.7
注释方法(第1种)在传递错误类型时不会抛出错误。
因此,第二种方法更好,但是它仍然可以改进。
def write_str(str1, file1_str):
assert (isinstance(str1, str) and isinstance(file1_str, str))
return None
如果你传入一个继承自于 str
. 虽然在这里不是很相关。isinstance
一般建议比 type
.