首页 > 代码库 > Python 获取一个对象的名字
Python 获取一个对象的名字
Note: 这里的对象是广义的,一个列表也算
有name的不在讨论之列, 因为可以直接输出
没有name的,可以参考如下代码,使用到的是globals()
except_word是用于过滤掉那些不想要的结果的,比如下面的例子中的for循环的each_item
这种 for循环干扰的情况有的时候会出现,有时候不会,具体的我现在还不清楚,但是似乎和namespace的排序有关。
>>> def get_name_of_obj(obj, except_word = ""):... for name, item in globals().items():... if item == obj and name != except_word:... return name...>>> objA = [1, 2, 3]>>> objB = (‘a‘, {‘b‘:‘thi is B‘}, ‘c‘)>>> for each_item in [objA, objB]:... get_name_of_obj(each_item)...‘objA‘‘objB‘>>>>>>>>> objC = [{‘a1‘:‘a2‘}]>>>>>> for item in [objA, objB, objC]:... get_name_of_obj(item)...‘objA‘‘item‘ <<<<<<<<<<<<<<<<<<<--------------------这显然不是我们想要的‘item‘>>> for item in [objA, objB]:... get_name_of_obj(item)...‘objA‘‘item‘>>>>>> for item in [objA, objB, objC]:... get_name_of_obj(item, "item")...‘objA‘‘objB‘<<<<<<<<<<<<<<<<<<<<------------------------ 加了except_word就好了‘objC‘>>> for item in [objA, objB, objC]:... get_name_of_obj(item, "item")...‘objA‘‘objB‘‘objC‘>>>
?
Python 获取一个对象的名字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。