当前位置: 首页 > 面试题库 >

检查对象在Python中是否类似于文件

林修雅
2023-03-14
问题内容

类文件对象是Python中的对象,其行为类似于真实文件,例如具有read()和write
method(),但实现方式不同。这是鸭打字概念的实现。

优良作法是在需要文件的任何地方都允许使用类似文件的对象,以便可以使用StringIO或Socket对象代替实际文件。因此执行这样的检查很不好:

if not isinstance(fp, file):
   raise something

检查对象(例如方法的参数)是否为“类文件”的最佳方法是什么?


问题答案:

除非您有特殊要求,否则通常在代码中完全没有这样的检查通常不是一个好习惯。

在Python中,键入是动态的,为什么您感觉需要检查对象是否类似于文件,而不是像对待文件一样仅使用它并处理所产生的错误?

无论如何,您可以做的任何检查都将在运行时发生,因此,如果方法不存在,则执行类似的操作if not hasattr(fp,'read')和引发某些异常将比仅调用fp.read()和处理结果属性错误提供更多的实用程序



 类似资料:
  • 问题内容: 有没有一种简单的方法来验证对象属于给定的类?例如,我可以 但这需要每次在运行中实例化一个新对象,而只是将其丢弃。有没有更好的方法来检查“ a”是否属于类“ MyClass”? 问题答案: 如其他答案所述,关键字通常是您想要的。请记住,超类也会返回。 如果要查看对象是否是类的直接实例,则可以比较该类。您可以通过获取实例的类对象。您可以通过静态访问特定的类。 因此,例如: 在上面的例子中,

  • 问题内容: 如何检查JavaScript对象或数组中是否存在特定键? 如果密钥不存在,而我尝试访问它,它将返回false吗?还是抛出错误? 问题答案: 检查不确定性不是测试密钥是否存在的准确方法。如果密钥存在但值实际上是怎么办? 您应该改为使用运算符: 如果要检查密钥是否不存在,请记住使用括号: 或者,如果您要特别测试对象实例的属性(而不是继承的属性),请使用: 有关和的方法之间的性能比较,关键是

  • 有没有简单的方法来验证对象是否属于给定的类?例如,我可以这样做 但是这需要每次动态实例化一个新对象,只是丢弃它。有更好的方法来检查“a”属于“MyClass”类吗?

  • 我想检查JS对象中是否存在“键”。有办法做到这一点吗?数据可以是一个任意子分支 例子:

  • 问题内容: 我正在玩Java的反射API,并尝试处理一些字段。现在,我要确定字段的类型。字符串很简单,只需执行即可。其他非派生类也是如此。但是,如何检查派生类?例如作为的子类。我无法找到任何或方法。我是否需要遍历所有人并自己找到超人? 问题答案: 您需要此方法: 一般情况下,(以上)应替换为并应替换为 从JavaDoc: 确定此对象表示的类或接口是否与指定参数表示的类或接口相同或超类或超接口。如果

  • 问题内容: 在python中,如何检查对象是否为生成器对象? 试试这个- 给出错误- (我知道我可以检查对象是否具有将其用作生成器的方法,但是我想以某种方式可以确定任何对象的类型,而不仅仅是生成器。) 问题答案: 您可以从以下类型使用GeneratorType: