测试对象是否为锁

问题描述 投票:1回答:2

你如何测试一个物体是threading.Lock还是multiprocessing.Lock(以及它们各自的RLocks?)。 Python中的这些对象(至少3个)是工厂方法,所以你不能只做:

isinstance(obj, threading.Lock)

因为这会给:

TypeError: isinstance() arg 2 must be a type or tuple of types
python python-multiprocessing python-multithreading standard-library factory-method
2个回答
3
投票

如果您有实例,则可以获取其类型。所以简单的解决方案就是这样做

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

0
投票

简单方法:

isinstance(obj, type(threading.Lock()))
© www.soinside.com 2019 - 2024. All rights reserved.