源码:
def ensure_one(self):
""" Verifies that the current recorset holds a single record. Raises
an exception otherwise.
"""
try:
# unpack to ensure there is only one value is faster than len when true and
# has a significant impact as this check is largely called
_id, = self._ids # 开始没明白什么意思,应该是python的多重赋值,只不过这种写法的情况下等号右边必须是可迭代的
return self
except ValueError:
raise ValueError("Expected singleton: %s" % self)
这段代码如果换种方式就很好理解了:
def ensure_one(self): """
换种写法 """ if len(self) == 1:
return self
else: raise ValueError("Expected singleton: %s" % self)