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

?

时间: 2024-10-14 14:45:04

Python 获取一个对象的名字的相关文章

Python获取网卡信息(名称、MAC、IP、网关等)

"人生苦短,我用Python".Python的高效有一部分是跟它丰富的模块分不开的.Python有很多第三方模块可以帮助我们完成一些事情,减少开发时间. Python pypi库中一个模块名字叫"netifaces",使用C语言写的一个第三方模块.可以: 1.获取本机的所有网关 2.获取本机所有的接口Interface(网卡NIC) 3.获取本机指定接口的详细信息,包括IP地址.子网掩码.广播地址.MAC地址等 不过遗憾的是这个模块的功能太有限以及会带出一些令人困惑

python 获取对象信息

当我们拿到一个对象的引用时,如何知道这个对象是什么类型.有哪些方法呢? 使用type() 首先,我们来判断对象类型,使用type()函数: 基本类型都可以用type()判断: >>> type(123) <type 'int'> >>> type('str') <type 'str'> >>> type(None) <type 'NoneType'> 如果一个变量指向函数或者类,也可以用type()判断: >&

python获取微信公共平台消息列表和用户头像

转载需注明原文地址:http://blog.csdn.net/btyh17mxy/article/details/25207889 刚写的模拟登陆的方式从获取微信公众平台消息列表和用户头像的库,之后还会继续增加相关功能,github地址https://github.com/btyh17mxy/wxwall #!/usr/bin/env python # coding: UTF-8 import json import hashlib import re import random import

Python网络编程小例子:使用python获取网站域名信息

Whois简介 whois(读作"Who is",非缩写)是用来查询域名的IP以及所有者等信息的传输协议.简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商).通过whois来实现对域名信息的查询.早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询.网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用.whois通常

使用python获取webservice数据并输出到文件

上头要求设置TCP备案检查,给了个WEBSERVICE接口.查了2天,才确认还是python比较好用,我这水平也就写个脚本把数据导出,过滤检索还是用的shell.写此文备忘.WEBSERVICE接口脚本如下: #! /usr/bin/python #coding:utf-8 import codecs import suds def main(file_name, out_file): url = 'http://121.14.4.210:8088/icpautobj/ws/getIcp?wsd

python 获取当前日期 星期

from datetime import datetime d =datetime.today()     #获取当前日期时间 d.isoweekday()           #获取时间周几 python 获取当前日期 星期,布布扣,bubuko.com

Python获取当地的天气和任意城市的天气

先从中国天气网得到数据('http://www.weather.com.cn/data/cityinfo/'+城市编码),每个城市都有各自的编码,如何得到用户所在地的城市编码呢?用一个网页就是专门干这个的!http://61.4.185.48:81/g/ 附录:所有城市的编码 101010100=北京 101010200=海淀 101010300=朝阳 101010400=顺义 101010500=怀柔 101010600=通州 101010700=昌平 101010800=延庆 1010109

Python 获取接口数据,解析JSON,写入文件

Python 获取接口数据,解析JSON,写入文件 用于练手的例子,从国家气象局接口上获取JSON数据,将它写入文件中,并解析JSON: 总的来说,在代码量上,python代码量要比java少很多.而且python看起来更直观一些: 以下是代码: import types import urllib2 import json duan ="--------------------------" #在控制台断行区别的 #利用urllib2获取网络数据 def registerUrl():

python获取当前路径

转自:http://www.cnblogs.com/wind-wang/p/5822192.html python获取当前路径 import os,sys 使用sys.path[0].sys.argv[0].os.getcwd().os.path.abspath(__file__).os.path.realpath(__file__) sys.path是Python会去寻找模块的搜索路径列表,sys.path[0]和sys.argv[0]是一回事因为Python会自动把sys.argv[0]加入