Python论坛  - 讨论区

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

2004年08月25日 星期三 09:54

Alex Dong adong at Objectivasoftware.com
Wed Aug 25 09:54:00 HKT 2004

Dir() 返回的是所有已经定义的变量的名字,比如:
>>> a = 3
>>> b = 4
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'b'] 
>>> str(a)
3
但是怎么能得到一个变量的名字呢? 一个奇怪又有趣的问题。



> -----Original Message-----
> From: python-chinese-bounces at lists.python.cn 
> [mailto:python-chinese-bounces at lists.python.cn] On Behalf Of 
> Zoom.Quiet
> Sent: 2004年8月25日 08:43
> To: Anew
> Subject: Re: [python-chinese] 有什么办法可以判断一个变量是否被定义过
> 
> Hollo Anew:
> 
>   咦咦咦??
> Python 不用什么专门函式的吧!
> 
> 直接判定在当前名称空间中有否就好的??
> 因为所有的都是对象!在dir()中会记录在案的?!?
> 
> if myVar in dir():
> 
> 就可以的吧?………………没有试验………………
> 
> 
> /******** [2004-08-25]08:41:57 ; Anew wrote:
> 
> Anew> python-chinese,您好!
> 
> Anew> 	有什么办法可以判断一个变量是否被定义过?
> 
> Anew> 	
> 在PHP中一个很常用的操作,用isset()函数就可以了,但是在python中我找了半天也没找到,虽然可以用try来捕获异常
> ,但感觉总是不太好.
> Anew> 有谁知道有没有什么函数可以直接来判断.
> 
> 		
> 
> Anew>         致
> Anew> 礼!
>  				
> 
> Anew>         Anew
> Anew>         Anewboy at citiz.net
> Anew>           2004-08-25
> 
> 
> ********************************************/
> 
> --
> Free as in Freedom
> 
>  Zoom.Quiet                           
> 
> #=========================================#
> ]Time is unimportant, only life important![ 
> #=========================================#
> 
> sender is the Bat!2.12.00
> 
> _______________________________________________
> python-chinese list
> python-chinese at lists.python.cn
> http://python.cn/mailman/listinfo/python-chinese
> 
> 


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

2004年08月25日 星期三 09:59

Xie Yanbo idkey at 163.com
Wed Aug 25 09:59:19 HKT 2004

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])

也能得到。



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

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

    你的回复:

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

    Zeuux © 2025

    京ICP备05028076号