如何用Python 3编写代码查看所有文件方法与错误类型?
获取文件对象的所有方法
要查看文件对象的所有可用方法(如close()、detach()、readline()等),你需要先创建文件类实例,再通过dir()筛选出非特殊可调用方法。示例代码如下:
import io # 用StringIO创建内存文件实例,无需生成实际磁盘文件 file_obj = io.StringIO() # 筛选并排序非特殊方法 file_methods = [ method for method in dir(file_obj) if not method.startswith('__') and callable(getattr(file_obj, method)) ] # 输出结果 for method in sorted(file_methods): print(method)
说明:
io.StringIO()模拟了文件对象的行为,避免了创建实际文件的繁琐操作。- 列表推导式过滤掉了以
__开头的特殊方法(如__init__),只保留可调用的业务方法。
获取所有内置异常类型
要查看所有内置异常类型(如ArithmeticError、AssertionError、MemoryError等),可以遍历builtins模块的属性,筛选出Exception的子类:
import builtins # 收集所有内置异常类 exceptions = [] for name, obj in vars(builtins).items(): # 检查是否为Exception的子类且是类类型 if isinstance(obj, type) and issubclass(obj, Exception): exceptions.append(name) # 排序并输出结果 for exc in sorted(exceptions): print(exc)
说明:
builtins模块包含所有Python内置对象,包括各类异常类。- 通过
vars(builtins)获取模块属性后,筛选逻辑确保只保留合法的异常类。
为什么直接用
dir()可能失败? - 文件方法场景:若直接对
open函数调用dir(),得到的是函数自身的属性,而非文件对象的方法。必须先创建文件实例(如f = open('test.txt', 'r'))再调用dir(f)。 - 异常类型场景:直接调用
dir(__builtins__)会返回所有内置对象名称,但无法直接区分哪些是异常类,需要额外的类型判断筛选。
内容的提问来源于stack exchange,提问作者Bosser445
相关产品推荐
相关产品推荐

