加载文件 - 是实例

时间:2015-11-24 08:30:58

标签: python function

我正在阅读以下代码行 - 我想知道为什么要检查文件的实例是否等于空字符串的类型?任何提示非常感谢

def load(file):
    if isinstance(file, type("")):
        file = open(file, "rb")
    return file.read()

3 个答案:

答案 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中)