首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python检查对象是ListProxy还是DictProxy

Python检查对象是ListProxy还是DictProxy
EN

Stack Overflow用户
提问于 2020-01-13 17:03:19
回答 2查看 307关注 0票数 1

我正在使用python中的多进程模块,并使用mp管理器提供的共享变量列表和dict。

代码语言:javascript
运行
复制
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>

我想做的是:

代码语言:javascript
运行
复制
if isinstance(b, ListProxy):
    do something
elif isinstance(c, DictProxy):
    do something else

然而,这些似乎不是内置在类型中的,我试着对照基本列表和dict类型来检查它们,但它们显然不起作用

如何在代码中测试这些类型?

EN

回答 2

Stack Overflow用户

发布于 2020-05-18 16:44:28

尝尝这个。

代码语言:javascript
运行
复制
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
票数 1
EN

Stack Overflow用户

发布于 2020-01-13 17:11:57

代码语言:javascript
运行
复制
from multiprocessing.manager import ListProxy, DictProxy

if isinstance(b, ListProxy):
    do something
elif isinstance(c, DictProxy):
    do something else

您可以从定义它们的位置导入它们,该位置位于管理器模型中

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59713359

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档