Skip to main content
 首页 » 编程设计

python之获取给定结构的所有对象及其全局名称

2025年05月04日27dflying

假设我有以下对象:

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