2
在Rails中,当不确定对象是否存在时,可以调用try。是否有相当于在Django试用的rails?
def method(foo)
foo.try(:bar)
end
如果foo
存在,它会调用foo.bar
,如果不是,它将返回nil
。 Django中有类似的机制吗?
在Rails中,当不确定对象是否存在时,可以调用try。是否有相当于在Django试用的rails?
def method(foo)
foo.try(:bar)
end
如果foo
存在,它会调用foo.bar
,如果不是,它将返回nil
。 Django中有类似的机制吗?
不是没有。你必须捕获异常,并返回None
代替:
def method(foo):
try:
return foo.bar
except (TypeError, AttributeError):
return None
或者,您可以检查给定对象是否具有使用getattr()
该属性:
def method(foo):
return getattr(foo, "bar", None)
我想这应该工作
def method(foo):
return foo.bar if foo and hasattr(foo, 'bar') else None
根据需要进行编辑。 –