【发布时间】:2009-11-02 13:13:57
【问题描述】:
File-like objects 是 Python 中的对象,其行为类似于真实文件,例如有一个 read() 和一个 write method(),但与file 有不同的实现。它是Duck Typing 概念的实现。
在需要文件的任何地方都允许使用类似文件的对象被认为是一种很好的做法,例如可以使用StringIO 或 Socket 对象代替真实文件。所以执行这样的检查是不好的:
if not isinstance(fp, file):
raise something
检查对象(例如方法的参数)是否“类文件”的最佳方法是什么?
【问题讨论】: