python变量名包括_Python – 获取全局范围内对象的所有变量名
我将用一个例子来解释:
list_1 = [1, 2, 3]
list_2 = list_3 = list_1 # reference copy
print(magic_method(list_1))
# Should print ['list_1', 'list_2', 'list_3']
set_1 = {'a', 'b'}
print(magic_method(set_1))
# Should print ['set_1']
要求:返回指向同一引用的所有变量的名称.用python完全可以吗?
我正在思考迭代于globals()和locals()以及等同id的行.有更好的吗?
最佳答案 对于全局变量,您可以:
def magic_method(obj):
return [name for name, val in globals().items() if val is obj]
如果您也想要本地名称,可以使用inspect模块:
def magic_method(obj):
import inspect
frame = inspect.currentframe()
try:
names = [name for name, val in frame.f_back.f_locals.items() if val is obj]
names += [name for name, val in frame.f_back.f_globals.items()
if val is obj and name not in names]
return names
finally:
del frame
然后:
list_1 = [1, 2, 3]
list_2 = list_1
def my_fun():
list_3 = list_1
list_2 = list_1
print(magic_method(list_1))
my_fun()
>>> ['list_3', 'list_1', 'list_2']
python变量名包括_Python – 获取全局范围内对象的所有变量名相关推荐
- 获取/设置IFRAME内对象元素的几种JS方法
获取/设置IFRAME内对象元素的几种JS方法 iframe浏览器ie文档微软 1.IE专用(通过frames索引形象定位): document.frames[i].document.getEleme ...
- python 打卡程序_python获取微信企业号打卡数据并生成windows计划任务
由于公司的系统用的是Java版本,开通了企业号打卡之后又没有预算让供应商做数据对接,所以只能自己捣鼓这个,以下是个人设置的一些内容,仅供大家参考 安装python python的安装,这里就不详细写了 ...
- python提取矩阵元素_python获取array中指定元素的示例
python获取array中指定元素的示例 对于array,如2-D的array,如何取指定元素 设array为3*10的shape s = array([[ 0, 1, 2, 3, 4, 5, 6, ...
- python读取数据库导出文件_Python 获取 datax 执行结果保存到数据库的方法
执行 datax 作业,创建执行文件,在 crontab 中每天1点(下面有关系)执行: 其中 job_start 及 job_finish 这两行记录是自己添加的,为了方便识别出哪张表. #!/bi ...
- python处理行情数据_Python获取股票历史、实时数据与更新到数据库
要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...
- python判断性别程序设计_python基础15 ---面像对象的程序设计
面向对象的程序设计 一.面向对象的程序设计简介 1.面向对象程序设计的由来. 我们之前虽然学习过了面向过程的程序,它的核心是面向过程,一步一步的设计好了的流程,虽然极大的降低了程序的复杂度,但是一个设 ...
- python变量名包括_python变量命名规则
python变量命名规则如下: 1.变量名称由数字.字母(包括大写字母和小写字母).下划线组成. 2.变量名不能以数字开头 3.变量名不能用python关键字 4.变量名不能用python函数,否则函 ...
- python 结构体嵌套_Python 3不更新嵌套包中的变量(使用“递归”相对导入)
我正在重构一个大型程序程序(在一个文件夹中实现了许多文件),并使用包将文件分组为面向对象的结构.该应用程序使用tKinter(可能是红色鲱鱼),并且正在Eclipse Kepler上(在Win7上)使 ...
- python qq群文件_python 获取qq群成员列表数据
#!/usr/bin/python # -*- coding: utf-8 -*- import re import time import xlsxwriter from selenium impo ...
最新文章
- valgrind 使用 kcachegrind 查看函数运行时间
- DataSet导出CSV格式(ASP.NET,C#)
- php将配置信息写入文件,Php写入配置文件的经典漏洞
- 《研磨设计模式》chap6 工厂模式factory(2)案例实现
- C语言哆啦a梦用printf输出,【2013.1.20】故事的最后,哆啦A梦终于又回到了大雄身边。从此两个人过上了…——ProtoType...
- echart 地图 某个地区_中国饮食地图来袭!你爱的口味暗藏健康隐患吗?
- NLP界新SOTA!吸纳5000万级知识图谱,一举刷爆54个中文任务!
- JDBC初学者的basedao工具类
- 分布式列数据库--理解hbase列存储机制、架构、表结构设计、命令操作
- Mysql学习总结(81)——为什么MySQL不推荐使用uuid或者雪花id作为主键?
- Android反编译apktool,dex2jar和jd-gui的使用和一键反编译查看apk
- MSB3644 找不到 .NETFramework,Version=v4.7 的引用程序集。要解决此问题,请为此框架版本安装......
- 简单一招就能进行不同平台的推文转移,复制粘贴。
- 用一根网线连接树莓派跟pc
- javaweb学生竞赛管理系统
- android硬解码
- chrome无痕模式可访问但正常模式访问不了
- 如何有效训练你的研究能力
- Kubadem方式安装Kubernetes(1.10.0)集群
- 大数据应用分析解决方案----图书出版