我正在阅读以下代码行 - 我想知道为什么要检查文件的实例是否等于空字符串的类型?任何提示非常感谢
def load(file):
if isinstance(file, type("")):
file = open(file, "rb")
return file.read()
答案 0 :(得分:0)
如果file
不是字符串,则open(file, "rb")
肯定会失败并显示错误。因此,对type("")
进行检查,保证为<str>
。由于同样的原因,return
语句也应正确地位于if条件中:尝试对文件对象以外的任何内容执行.read()
几乎肯定会因错误而失败。
答案 1 :(得分:0)
这只是类似强类型语言的实现。由于Python类型较弱,因此您不必对您将要使用的变量类型进行十分转换,对于不确定其他人如何使用其功能的人来说,它只是一种保证政策。
答案 2 :(得分:0)
这只是另一种写作:
...
if isinstance(file, str):
...
因为type('')
str
(无论是在Python 2还是Python 3中)