如何获取Python程序中定义的变量名

Seamile

2009-11-05 22:23:50 来自: Seamile(我是一串自由的代码)

如题,比如我定义了这样几个变量并打包成一个元组:
a='abc'
b='def'
c='ghi'

t=a,b

for i in t:
if i =='def':
print '该变量为:',( 在这里我希望输出b )

谁能告诉我该怎么做

  • mrshelly

    2009-11-06 07:06:24 mrshelly ((广告位出租,有意豆邮))

    a = 'abc'
    b = 'def'
    c = 'ghi'

    t = a,b

    for i in t:
    if i == 'efgh':
    print '这里似乎永远也执行不到.你还指望输出什么哩?'


    by mrshelly
    2009/11/06

  • Seamile

    2009-11-06 08:19:21 Seamile (我是一串自由的代码)

    嘿嘿,打错了,已经改过了

  • NightCrawler

    2009-11-06 08:54:43 NightCrawler (回忆2061)

    这种情况应该用字典
    i 没办法知道还有谁引用了'def'

  • 绝望的笨蛋

    2009-11-06 09:49:05 绝望的笨蛋 (生活,梦想,未来)

    你的语义本身就有问题,对于程序来说,没准编译完以后,a b c这三个东西都消失了,留下的只是local var 0,local var 1, local var 2,

    如果非要靠代码本身的变量来说明你所要编写的自然世界印象,我觉得这个语义上本身就存在问题。。。你应该反思你的实现目的和方法

  • Seamile

    2009-11-06 10:54:16 Seamile (我是一串自由的代码)

    补充一下,我现在在写一个程序 ,需要遍历一组密钥(key1,key2,key3…)去解一段密文,最后我只想知道可解的那个密钥名称

  • J

    2009-11-06 11:02:18 J (学好英语,了解中国!)

    这种情况应该用字典
    +1

  • Seamile

    2009-11-06 11:20:11 Seamile (我是一串自由的代码)

    哦 的确 用字典解决了。
    d={'a':'123',
    'b':'234',
    'c':'345'}
    for i in d:
    if d[i]=='234':
    print i

  • IT小兵

    2009-11-06 11:25:38 IT小兵 (兵哥出手,沙发我有!!)

    这不就是带键名的数组嘛,PHPer飘过...

  • 元创

    2009-11-06 20:30:28 元创 (操着卖白粉的心,挣着卖白菜的钱)

    #得到变量名的变态方法。

    a='abc'
    b='def'
    c='ghi'

    t=a,b

    for i in t:
      if i == 'def':
        for x, y in locals().items():
          if i == y and x != 'i':
            print x

  • mrshelly

    2009-11-09 06:57:51 mrshelly ((广告位出租,有意豆邮))

    嗯.看了元创的代码. 就明白,,,,啥叫折腾了....

  • DaemonEye

    2009-11-16 23:19:23 DaemonEye (血火同源)

    还是直接字典方便啊....不过看了ls得代码又学了一些方法

  • 银狐

    2009-11-17 09:07:33 银狐 (篡改剧情)

    dir()


这个小组的成员也喜欢去   · · · · · · 

Django
Django (1356)
Vim
Vim (3308)
Google App Engine
Google App Engine (1440)
Linux
Linux (4255)
ubuntu
ubuntu (4560)
Ruby
Ruby (1158)