有没有办法检查是否定义了具有指定名称的变量(类成员或独立)?例:
if "myVar" in myObject.__dict__ : # not an easy way
print myObject.myVar
else
print "not defined"
Run Code Online (Sandbox Code Playgroud)
Mil*_*les 29
紧凑的方式:
print myObject.myVar if hasattr(myObject, 'myVar') else 'not defined'
Run Code Online (Sandbox Code Playgroud)
不过,htw的方式更像是Pythonic.
hasattr()
x in y.__dict__
但不同之处在于:hasattr()
将继承的类属性考虑在内,以及从中返回动态的属性__getattr__
,而y.__dict__
只包含那些作为y
实例属性的对象.
hbw*_*hbw 22
try:
print myObject.myVar
except NameError:
print "not defined"
Run Code Online (Sandbox Code Playgroud)
phy*_*ael 10
Paolo是对的,如果需要的话,可能会有一些关于你做事的方式.但是如果你只是做一些快速而又肮脏的事情,你可能并不关心习惯性的Python,那么这可能会更短.
try: x
except: print "var doesn't exist"
Run Code Online (Sandbox Code Playgroud)
小智 6
要测试变量myvar是否已定义:
result = dir().count('myvar')
Run Code Online (Sandbox Code Playgroud)
如果定义了myvar,则结果为1
,否则为0
。
在Python版本3.1.2中可以正常工作。
归档时间: |
|
查看次数: |
62805 次 |
最近记录: |