我们有一个返回城市/州元组的对象方法,即('Boston', 'MA')。在某些有效的情况下,没有有效的城市/州可以返回。从风格上讲,是返回None更有意义,还是返回包含(None, None)的两元素元组更有意义?
发布于 2011-08-17 02:16:57
我会返回None。如果没有结果,为什么要返回看起来像结果的东西呢?
它也更容易测试:
result = getCity()
if result:
# do something如果两个值中可能只有一个是None (即('Boston', None)),我才会返回(None, None)。在这种情况下,它会更一致。
发布于 2011-08-17 02:19:35
如果在异常情况下只返回一个值,就有可能破坏元组拆包的习惯用法。您的一些调用者可能会发出以下命令:
city, state = getCityStateTuple("something")在这种情况下,返回None将中断调用者,并显示错误:
TypeError: 'NoneType' object is not iterable
因此,在您的情况下,我个人会返回(None, None)。话又说回来,您的里程数可能会有所不同,这取决于您的呼叫者使用的模式。
发布于 2011-08-17 02:17:06
在Python语言中,(None, None)的计算结果不是False。此外,构建元组比不构建元组需要更多的工作。所以我更喜欢None。
https://stackoverflow.com/questions/7082966
复制相似问题