为了账号安全,请及时绑定邮箱和手机立即绑定

返回,不返回,甚至根本不返回?

返回,不返回,甚至根本不返回?

慕仙森 2019-06-29 16:58:12
返回,不返回,甚至根本不返回?考虑三项职能:def my_func1():   print "Hello World"   return Nonedef my_func2():   print "Hello World"   returndef my_func3():   print "Hello World"他们似乎都没有退货。这些函数的返回值之间有什么不同吗?有什么理由选择其中一种而另一种呢?
查看完整描述

3 回答

?
jeck猫

TA贡献1909条经验 获得超7个赞

是的,它们都一样。

我们可以检查解释过的机器代码,以确认它们都在做完全相同的事情。

import disdef f1():
  print "Hello World"
  return Nonedef f2():
  print "Hello World"
  returndef f3():
  print "Hello World"dis.dis(f1)
    4   0 LOAD_CONST    1 ('Hello World')
        3 PRINT_ITEM        4 PRINT_NEWLINE    5   5 LOAD_CONST    0 (None)
        8 RETURN_VALUE

dis.dis(f2)
    9   0 LOAD_CONST    1 ('Hello World')
        3 PRINT_ITEM        4 PRINT_NEWLINE    10  5 LOAD_CONST    0 (None)
        8 RETURN_VALUE

dis.dis(f3)
    14  0 LOAD_CONST    1 ('Hello World')
        3 PRINT_ITEM        4 PRINT_NEWLINE            
        5 LOAD_CONST    0 (None)
        8 RETURN_VALUE



查看完整回答
反对 回复 2019-06-29
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

他们各自返回相同的独生子女。None-没有功能上的差别。

我认为不使用return语句,除非您需要它提前脱离函数(在这种情况下,则为裸函数)。return),或者返回比None..这也是有意义的,而且似乎是惯用的写作。return None当它位于一个函数中时,它有另一条返回其他内容的路径,而不是None..写字return None对于读者来说,显式地显示出有另一个分支返回更有趣的内容(调用代码可能需要处理这两种类型的返回值)。

通常在Python中,返回的函数None就像voidC中的函数-它们的目的通常是对输入参数进行操作就位(除非您使用的是全局数据(战栗)。回归None通常会更清楚地表明这些论点是变异的。这使我们更加清楚为什么不使用return从“语言惯例”的观点出发。

尽管如此,如果你在一个已经有预先设定好的规范的代码库中工作,我肯定会跟着做,以帮助代码库保持一致.


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 436 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信