首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该返回None还是(None,None)?

我应该返回None还是(None,None)?
EN

Stack Overflow用户
提问于 2011-08-17 02:14:16
回答 9查看 5.1K关注 0票数 57

我们有一个返回城市/州元组的对象方法,即('Boston', 'MA')。在某些有效的情况下,没有有效的城市/州可以返回。从风格上讲,是返回None更有意义,还是返回包含(None, None)的两元素元组更有意义?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-08-17 02:16:57

我会返回None。如果没有结果,为什么要返回看起来像结果的东西呢?

它也更容易测试:

代码语言:javascript
复制
result = getCity()
if result:
   # do something

如果两个值中可能只有一个是None (即('Boston', None)),我才会返回(None, None)。在这种情况下,它会更一致。

票数 57
EN

Stack Overflow用户

发布于 2011-08-17 02:19:35

如果在异常情况下只返回一个值,就有可能破坏元组拆包的习惯用法。您的一些调用者可能会发出以下命令:

代码语言:javascript
复制
city, state = getCityStateTuple("something")

在这种情况下,返回None将中断调用者,并显示错误:

TypeError: 'NoneType' object is not iterable

因此,在您的情况下,我个人会返回(None, None)。话又说回来,您的里程数可能会有所不同,这取决于您的呼叫者使用的模式。

票数 46
EN

Stack Overflow用户

发布于 2011-08-17 02:17:06

在Python语言中,(None, None)的计算结果不是False。此外,构建元组比不构建元组需要更多的工作。所以我更喜欢None

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7082966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档