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'
>>>

最新文章

  1. 快速入门系列--MVC--06视图
  2. hello
  3. 【Windows 10 IoT - 3】Windows 10 RTM安装及新特性(树莓派 Pi2)
  4. 谈JavaScript组合拼接字符串的效率 --转载
  5. 移动开发框架,第【二】弹:Hammer.js 移动设备触摸手势js库
  6. Android的JNI开发
  7. KeyEvent
  8. 【Python爬虫实战--3】html写正则表达式
  9. 《Java从入门到放弃》JavaSE入门篇:网络编程(入门版)
  10. IDEA启动后页面没有tomcat server选项,显示灰色问号和红叉不能使用
  11. the first simple html page generated by div and table tags
  12. HttpClient4.5.2调用示例(转载+原创)
  13. PyCharm导入pymysql包运行报错问题解决:No module named &#39;PyMySQL&#39;
  14. JMM规范
  15. 用JS编写个人所得税计算器
  16. 递归函数 Vue ElementUI
  17. SpringCloud之初识Zuul(网关)---动态路由,权限验证
  18. springboot配置cxf
  19. for each...in
  20. python 序列化,反序列化

热门文章

  1. 项目中是用eCharts
  2. HTML5横竖屏提示
  3. Android listview addHeaderView 和 addFooterView 详解
  4. NYOJ 1023 还是回文(DP,花最少费用形成回文串)
  5. 关于orapwd命令entries参数的探究
  6. Yii2的深入学习--自动加载机制
  7. UI/UE/ID/UED/UCD的区别
  8. MVC自动生成数据库【Code-FIrst方式】
  9. Clipboard.js实现复制内容到剪切板
  10. 基于MVC4+EasyUI的Web开发框架经验总结(15)--在MVC项目中使用RDLC报表