首页 > 解决方案 > 如何测试一个对象是否是锁?

问题描述

你将如何测试一个对象是否是 athreading.Lockmultiprocessing.Lock(以及它们各自RLock的 s?)。Python 中的这些对象(至少 3 个)是工厂方法,所以你不能只做:

isinstance(obj, threading.Lock)

因为这会给:

TypeError: isinstance() arg 2 must be a type or tuple of types

标签: pythonpython-multiprocessingpython-multithreadingstandard-libraryfactory-method

解决方案


如果你有一个实例,你可以得到它的类型。所以简单的解决方案是

threading_Lock = type(threading.Lock())
isinstance(obj, threading_Lock)

推荐阅读