百科问答小站 logo
百科问答小站 font logo



python如何将变量名转化为同名字符串? 第1页

  

user avatar   zhang-yuan-meng-90 网友的相关建议: 
      

贴一个简单的方法。

(前面有位老兄提到过,我这里细化一下)

思路: 1.字典化 2.提取key名

Demo:

       # 目的:将变量abc的名字提取为字符串 'abc' >> abc = 376      >> variable_name = list(dict(abc=abc).keys())[0] >> variable_name >> 'abc'     



既然有题主这个需求,说明这个变量目前已被赋值,这个值可以是任意值,可以是int,string,甚至是一个类实例,这里以int举例。

来看一下具体发生了什么:

       >> abc = 376    # 第一步:字典化 >> dict(abc = abc)        # 最骚的就是这步了 >> {'abc': 376}           # 所得的字典  # 第二步:取字典的key >> dict(abc = abc).keys() >> dict_keys(['abc'])     # 得到一个字典key版的字符串  # 第三步:list化 >> list(dict(abc = abc).keys()) >> ['abc']                # 得到一个list  # 最后 >> list(dict(abc = abc).keys())[0] >> 'abc'                  # 你要的东西:变量名的字符串  # 最后验证一下原变量有没有发生改变 >> abc >> 376                   # 没变     


这里最骚的一步就是第一步字典化:

粗体abc交给字典做key名,第二个abc(即376)是key的value。这就保证了变量在提取过程中值不会发生任何改变。


这个方法巧妙地利用了python字典化操作中将变量名变成key名的特点,根本无需调用复杂的底层命名空间等等这种鬼操作。

个人感觉,这个需求太太太太小众了,但极偶尔在有些奇奇怪怪的地方就能派上用场了。




  

相关话题

  连小孩子都在学编程,报考计算机专业还有意义吗? 
  Windows自带的文本编辑器原理? 
  微软、诺基亚这类大公司解雇的中年员工去向如何? 
  IT 领域知名的技术人士除了 Dennis M. Ritchie(C, UNIX), Ken Thompson(UNIX), Bjarne Stroustrup(C++), Linus Torvalds(Linux), Jame Gosling(Java),这样重量级还有谁? 
  对于程序员是全栈好?还是专注一个领域好? 
  在Linux中如果把Python卸载了系统还能正常运行吗? 
  一行代码可以做什么? 
  信息学竞赛算是边缘竞赛吗? 
  现在的人工智能水平,能代替程序员写代码吗?如果有一天能写代码,是否会促使它发展自己的思维? 
  Python真的不适合游戏开发吗?游戏全都用像Python这种解释型语言写,对开发出的游戏有什么影响? 

前一个讨论
使用Python函数递归实现斐波那契数列时为什么运行速度很慢?
下一个讨论
如何看待我国的“传播淫秽物品”罪?





© 2025-01-28 - tinynew.org. All Rights Reserved.
© 2025-01-28 - tinynew.org. 保留所有权利