我正在 python 中使用多处理模块,并使用 mp 管理器提供的共享变量列表和字典。
import multiprocessing as mp
a = mp.Manager()
b = a.list()
b
<ListProxy object, typeid 'list' at 0x14098207908>
c = a.dict()
c
<DictProxy object, typeid 'dict' at 0x140984579c8>
我想做:
if isinstance(b, ListProxy):
do something
elif isinstance(c, DictProxy):
do something else
但是这些似乎不是内置类型,我尝试根据基本列表和字典类型检查它们,但它们显然不起作用
如何在代码中测试这些类型?
最佳答案
试试这个。
import multiprocessing as mp
def judge(x):
if isinstance(x, mp.managers.ListProxy):
print('It is a ListProxy.')
elif isinstance(x, mp.managers.DictProxy):
print('It is a DictProxy.')
else:
pass
pass
def main():
a = mp.Manager()
b = a.list()
c = a.dict()
judge(b)
judge(c)
pass
if __name__ == '__main__':
main()
pass
关于Python 检查对象是 ListProxy 还是 DictProxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59713359/