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
根據需要進行編輯。 –