Python论坛  - 讨论区

标题:RE: RE: [python-chinese] 有什么办法可以判断一个变量是否被定义过

2004年08月25日 星期三 10:26

Alex Dong adong at Objectivasoftware.com
Wed Aug 25 10:26:49 HKT 2004

应该是可以的,原因是dir()可以得到一个从变量名到变量的列表,所以按照逻辑上解释应该可以。

我之所以说这个问题非常有趣是因为在其它的语言,比如C#, C++, Java中 变量名和函数名都是在词法解释的时候先被Name Mangling,然后放入符号表;此后的语法分析看到的就不再是a, b和是var2145455, var0989345。我没有看过Python的Interpreter,不知道是否Python语言在这一点上比较特殊。Python这么做是出于什么原因?是否就是为了Interactive Shell? 

> -----Original Message-----
> From: python-chinese-bounces at lists.python.cn 
> [mailto:python-chinese-bounces at lists.python.cn] On Behalf Of 
> dreamingk(天成)
> Sent: 2004年8月25日 10:18
> To: python-chinese at lists.python.cn
> Subject: Re: RE: [python-chinese] 有什么办法可以判断一个变量是否被定义过
> 
> Alex Dong,您好!
> 
> 	好象不可以这样吧!
>     可以通过给定字符串来得到相应的变量的值。逆操作应该不可以吧!
> 
> ======= 2004-08-25 10:13:38 您在来信中写道:=======
> 
> >我想知道的是给定变量a, 如何得到字符串'a'?
> >
> >这是一个有些神秘的事情,不知道Python是否能做到。
> >
> >> -----Original Message-----
> >> From: python-chinese-bounces at lists.python.cn
> >> [mailto:python-chinese-bounces at lists.python.cn] On Behalf Of Xie 
> >> Yanbo
> >> Sent: 2004年8月25日 09:59
> >> To: python-chinese at lists.python.cn
> >> Subject: Re: [python-chinese] 有什么办法可以判断一个变量是否被定义过
> >> 
> >> On 2004-08-25 09:54:1093398840 +0800, Alex Dong wrote:
> >> > Dir() 返回的是所有已经定义的变量的名字,比如:
> >> > >>> a = 3
> >> > >>> b = 4
> >> > >>> dir()
> >> > ['__builtins__', '__doc__', '__name__', 'a', 'b']
> >> > >>> str(a)
> >> > 3
> >> > 但是怎么能得到一个变量的名字呢? 一个奇怪又有趣的问题。
> >> 
> >> 什么叫“得到一个变量的名字”?你在执行 dir() 之后不是已经
> >> 都得到了吗?你是不是想通过得到的变量名字 'a' 取得 a 的值?
> >> 如果是,这样试试:
> >> 
> >>   eval('a')
> >> 
> >> 或者
> >> 
> >>  eval(dir()[3])
> >> 
> >> 也能得到。
> >> 
> >> _______________________________________________
> >> python-chinese list
> >> python-chinese at lists.python.cn
> >> http://python.cn/mailman/listinfo/python-chinese
> >> 
> >> 
> >_______________________________________________
> >python-chinese list
> >python-chinese at lists.python.cn
> >http://python.cn/mailman/listinfo/python-chinese
> 
> = = = = = = = = = = = = = = = = = = = =
> 			
> 
>         致
> 礼!
>  
> 				 
>         dreamingk(天成)
>         dreamingker at 163.com
>           2004-08-25
> 
> 
> 


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年08月25日 星期三 10:29

dreamingk(天成) dreamingker at 163.com
Wed Aug 25 10:29:43 HKT 2004

dreamingk(天成),您好!

	这样讨论好象没有结果吧!
    不如到哪里做个投票,然后根据结果来决定交流方式!
    不过也有问题的。因为很多朋友上网有很多限制或者不便的地方,不能要求每个人都一样的。所以多元化的交流方式还是必须的。
    有很多朋友在公司上qq不方便,但是对于我、hoxide等等,qq还是用的最多的。而uc上面人确实不多,一个uc的普及率毕竟不及qq,二是他现在只是我们在讲课的时候语音交流的方式,如果可以找到更好的语音交流的方式,uc也可不用。
    mailing还是比较适合用来讨论技术的。没发现我们的讨论成果大都是从mailing 中得到的吗?但是现在这个maling还存在些问题。并且如果象我回到学校上网条件很差,又不能用邮件工具,只能用web方式来处理,那就难死了。
    irc还是不错的。我以前用过,觉得象一个c/s方式的功能强大的多人聊天室(不知道准确不?)。对于解决某些问题,这样的即时交流方式还是必须的。
    如果大家根据自己的情况都用好上面的交流方式,辅以一定的管理,以及资料的整理。我觉得对于我们社区的发展会是很好的!

======= 2004-08-25 10:17:44 您在来信中写道:=======

>Alex Dong,您好!
>
>	好象不可以这样吧!
>    可以通过给定字符串来得到相应的变量的值。逆操作应该不可以吧!
>
>======= 2004-08-25 10:13:38 您在来信中写道:=======
>
>>我想知道的是给定变量a, 如何得到字符串'a'?
>>
>>这是一个有些神秘的事情,不知道Python是否能做到。 
>>
>>> -----Original Message-----
>>> From: python-chinese-bounces at lists.python.cn 
>>> [mailto:python-chinese-bounces at lists.python.cn] On Behalf Of Xie Yanbo
>>> Sent: 2004年8月25日 09:59
>>> To: python-chinese at lists.python.cn
>>> Subject: Re: [python-chinese] 有什么办法可以判断一个变量是否被定义过
>>> 
>>> On 2004-08-25 09:54:1093398840 +0800, Alex Dong wrote:
>>> > Dir() 返回的是所有已经定义的变量的名字,比如:
>>> > >>> a = 3
>>> > >>> b = 4
>>> > >>> dir()
>>> > ['__builtins__', '__doc__', '__name__', 'a', 'b']
>>> > >>> str(a)
>>> > 3
>>> > 但是怎么能得到一个变量的名字呢? 一个奇怪又有趣的问题。
>>> 
>>> 什么叫“得到一个变量的名字”?你在执行 dir() 之后不是已经
>>> 都得到了吗?你是不是想通过得到的变量名字 'a' 取得 a 的值?
>>> 如果是,这样试试:
>>> 
>>>   eval('a')
>>> 
>>> 或者
>>> 
>>>  eval(dir()[3])
>>> 
>>> 也能得到。
>>> 
>>> _______________________________________________
>>> python-chinese list
>>> python-chinese at lists.python.cn
>>> http://python.cn/mailman/listinfo/python-chinese
>>> 
>>> 
>>_______________________________________________
>>python-chinese list
>>python-chinese at lists.python.cn
>>http://python.cn/mailman/listinfo/python-chinese
>
>= = = = = = = = = = = = = = = = = = = =
>			
>
>        致
>礼!
> 
>				 
>        dreamingk(天成)
>        dreamingker at 163.com
>          2004-08-25
>
>_______________________________________________
>python-chinese list
>python-chinese at lists.python.cn
>http://python.cn/mailman/listinfo/python-chinese
>

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        dreamingk(天成)
        dreamingker at 163.com
          2004-08-25


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2004年08月25日 星期三 10:33

guochen guochen at 1218.com.cn
Wed Aug 25 10:33:28 HKT 2004

dreamingk(天成),您好!

	其实邮件多点也无所谓了,正好可以看到点别人的见解。有的问题自己觉得自己懂了,但可能理解的还是有偏差,看看别人的问题和解答,可能会有意外的启发。而且要是用邮件客户端的话,邮件的空间根本不是问题,除非硬盘太小了

======= 2004-08-25 10:29:00 您在来信中写道:=======

>dreamingk(天成),您好!
>
>	这样讨论好象没有结果吧!
>    不如到哪里做个投票,然后根据结果来决定交流方式!
>    不过也有问题的。因为很多朋友上网有很多限制或者不便的地方,不能要求每个人都一样的。所以多元化的交流方式还是必须的。
>    有很多朋友在公司上qq不方便,但是对于我、hoxide等等,qq还是用的最多的。而uc上面人确实不多,一个uc的普及率毕竟不及qq,二是他现在只是我们在讲课的时候语音交流的方式,如果可以找到更好的语音交流的方式,uc也可不用。
>    mailing还是比较适合用来讨论技术的。没发现我们的讨论成果大都是从mailing 中得到的吗?但是现在这个maling还存在些问题。并且如果象我回到学校上网条件很差,又不能用邮件工具,只能用web方式来处理,那就难死了。
>    irc还是不错的。我以前用过,觉得象一个c/s方式的功能强大的多人聊天室(不知道准确不?)。对于解决某些问题,这样的即时交流方式还是必须的。
>    如果大家根据自己的情况都用好上面的交流方式,辅以一定的管理,以及资料的整理。我觉得对于我们社区的发展会是很好的!
>
>======= 2004-08-25 10:17:44 您在来信中写道:=======
>
>>Alex Dong,您好!
>>
>>	好象不可以这样吧!
>>    可以通过给定字符串来得到相应的变量的值。逆操作应该不可以吧!
>>
>>======= 2004-08-25 10:13:38 您在来信中写道:=======
>>
>>>我想知道的是给定变量a, 如何得到字符串'a'?
>>>
>>>这是一个有些神秘的事情,不知道Python是否能做到。 
>>>
>>>> -----Original Message-----
>>>> From: python-chinese-bounces at lists.python.cn 
>>>> [mailto:python-chinese-bounces at lists.python.cn] On Behalf Of Xie Yanbo
>>>> Sent: 2004年8月25日 09:59
>>>> To: python-chinese at lists.python.cn
>>>> Subject: Re: [python-chinese] 有什么办法可以判断一个变量是否被定义过
>>>> 
>>>> On 2004-08-25 09:54:1093398840 +0800, Alex Dong wrote:
>>>> > Dir() 返回的是所有已经定义的变量的名字,比如:
>>>> > >>> a = 3
>>>> > >>> b = 4
>>>> > >>> dir()
>>>> > ['__builtins__', '__doc__', '__name__', 'a', 'b']
>>>> > >>> str(a)
>>>> > 3
>>>> > 但是怎么能得到一个变量的名字呢? 一个奇怪又有趣的问题。
>>>> 
>>>> 什么叫“得到一个变量的名字”?你在执行 dir() 之后不是已经
>>>> 都得到了吗?你是不是想通过得到的变量名字 'a' 取得 a 的值?
>>>> 如果是,这样试试:
>>>> 
>>>>   eval('a')
>>>> 
>>>> 或者
>>>> 
>>>>  eval(dir()[3])
>>>> 
>>>> 也能得到。
>>>> 
>>>> _______________________________________________
>>>> python-chinese list
>>>> python-chinese at lists.python.cn
>>>> http://python.cn/mailman/listinfo/python-chinese
>>>> 
>>>> 
>>>_______________________________________________
>>>python-chinese list
>>>python-chinese at lists.python.cn
>>>http://python.cn/mailman/listinfo/python-chinese
>>
>>= = = = = = = = = = = = = = = = = = = =
>>			
>>
>>        致
>>礼!
>> 
>>				 
>>        dreamingk(天成)
>>        dreamingker at 163.com
>>          2004-08-25
>>
>>_______________________________________________
>>python-chinese list
>>python-chinese at lists.python.cn
>>http://python.cn/mailman/listinfo/python-chinese
>>
>
>= = = = = = = = = = = = = = = = = = = =
>			
>
>        致
>礼!
> 
>				 
>        dreamingk(天成)
>        dreamingker at 163.com
>          2004-08-25
>
>_______________________________________________
>python-chinese list
>python-chinese at lists.python.cn
>http://python.cn/mailman/listinfo/python-chinese

= = = = = = = = = = = = = = = = = = = =
			

        致
礼!
 
				 
        guochen
        guochen at 1218.com.cn
          2004-08-25





[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号