Python找出所有正在使用的集合的名称

时间:2017-02-24 11:48:36

标签: python set

假设您正在运行程序,并且该程序的一部分处理已在程序的其他位置创建的集合。但是你不知道集合的实际名称,你需要找出它。那可能吗?如果是这样,怎么样?

2 个答案:

答案 0 :(得分:0)

使用内置globals()isinstance()函数的解决方案:

s1 = set([1,2,3])

d = dict(a=1,b=2)

s2 = set([1,2,3])

l = [1,3,3]
s3 = set([1,2,3])

all_vars = globals().copy().items()
for k,v in all_vars:
    if isinstance(v, set):
        print(k)

输出:

s1
s3
s2

答案 1 :(得分:0)

a = set()
b = a
c = [set()]

def fun(x):
    print(x)

fun(set())

fun(b)

现在这些集合的“名称”是什么?

我的意思是你的问题没有意义,而不是Python的工作方式。这是一个典型的XY problem,所以请发一个关于你真正问题的问题,而不是你认为解决方案的问题。