我正在编写一个代码,试图深入挖掘输入对象并找出该对象内的值。这是一个示例代码:
def GetThatValue(inObj):
if inObj:
level1 = inObj.GetBelowObject()
if level1:
level2 = level1.GetBelowObject()
if level2:
level3 = level2.GetBelowObject()
if level3:
return level3.GetBelowObject()
return None
在很多情况下,我最终都会遇到这些“倾斜的条件”。
我怎样才能避免这种情况?这看起来很脏,而且它是一种防御性编程。
最佳答案
try:
return monkey.TypeWriter().Manufacturer().Shareholders().EthnicDistribution()
except AttributeError:
return None
试着去拿东西。如果它不起作用,您就知道缺少其中一个级别。如果这些
GetBelowObject
调用实际上不是完全相同的方法,则此方法特别有效。