Проверьте, является ли объект замком - PullRequest
1 голос
/ 06 марта 2019

Как бы вы проверили, является ли объект threading.Lock или multiprocessing.Lock (и их соответствующими RLock с?).Эти объекты в Python (по крайней мере, 3) являются фабричными методами, поэтому вы не можете просто сделать:

isinstance(obj, threading.Lock)

Как это даст:

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

Ответы [ 2 ]

3 голосов
/ 06 марта 2019

Если у вас есть экземпляр, вы можете получить его тип. Таким образом, простое решение состоит в том, чтобы сделать

threading_Lock = type(threading.Lock())
isinstance(obj, threading_Lock)
0 голосов
/ 06 марта 2019

Простой способ:

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