Ray*_*Ray 12 python types file python-3.x
我正在从Python 2.7移植到Python 3.3.2.在Python 2.7中,我曾经能够做类似的事情assert(type(something) == file),但似乎在Python 3.3.2中这是错误的.我如何在Python 3.3.2中做类似的事情?
Mar*_*ers 24
Python 3文件对象是io模块的一部分,测试该模块中的ABC类:
from io import IOBase
if isinstance(someobj, IOBase):
Run Code Online (Sandbox Code Playgroud)
不要type(obj) == file在Python 2中使用; 你会isinstance(obj, file)改用它.即使这样,你也想测试一下这些功能 ; 事物的io基本知识,让你做; 该isinstance()函数将返回True实现Abstract Base Class定义的所有方法的任何对象.
演示:
>>> from io import IOBase
>>> fh = open('/tmp/demo', 'w')
>>> isinstance(fh, IOBase)
True
>>> isinstance(object(), IOBase)
False
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8390 次 |
| 最近记录: |