假设您正在运行程序,并且该程序的一部分处理已在程序的其他位置创建的集合。但是你不知道集合的实际名称,你需要找出它。那可能吗?如果是这样,怎么样?
答案 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,所以请发一个关于你真正问题的问题,而不是你认为解决方案的问题。