perhaps just having a utility function can get us some of the way there.. #may error r = a.b.x.z # will default to None r = a?.b?.x?.z r = get_null_aware(a, "b.x.z") # long but no new syntax, can be implemented today.