假设我有以下对象:
gray = (132, 132, 132)
green = (0, 104, 0)
red = (168, 0, 68)
如何获取所有这种形式(RGB)的globals()以及对应对象的名称?
请您参考如下方法:
使用 isinstance ,您可以检查对象的类型。并使用 vars ,您将获得变量名称到值的映射。
gray = (132, 132, 132)
green = (0, 104, 0)
red = (168, 0, 68)
somethingelse = 0
for key, value in vars().items():
is_rgb = (
isinstance(value, tuple) and
len(value) == 3 and
all(isinstance(x, int) for x in value)
)
if is_rgb:
print(key)
另一种方式:try-except
gray = (132, 132, 132)
green = (0, 104, 0)
red = (168, 0, 68)
somethingelse = 0
for key, value in vars().items():
try:
_, _, _ = value
if isinstance(value, tuple):
print(key)
except (TypeError, ValueError):
pass
