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

返回函数理解的非常的不好

返回函数理解的非常的不好

worry921 2016-07-24 11:11:18
def f():    print 'call f()...'#为什么要加这个语句,这个语句想让我们看到啥?                               还有,这不是在建造一个函数吗,为什么没有return的返回值?       def g():# 定义函数g:  #为什么在函数发f内部再建一个函数,这依据的是什么?        print 'call g()...'       return g # 返回函数g: #为什么返回的是g,而不是g()?-------------------------------------------------------------------------问题都在注释里面-------------------------------------------------------------------------------------->>> x = f()   # 调用f() ,为啥不是直接f(),还非得要一个x?call f()...>>> x   <function g at 0x1037bf320>>>> x()   # x指向函数,因此可以调用,x和x()的区别是什么call g()...   
查看完整描述

1 回答

已采纳
?
寻梦的男孩

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

“在Python中,函数本身也是对象”,所用问题皆可用这句话来解释。

从上到下,按顺序:

  1.  print 'call f()...'  仅仅是输出一个字符串'call f()...' 而已。。而已。。。加这句估计是想让看到输出了'call f()'就知道函数f()被调用了吧;

  2. 函数本身就是一个对象,在对象中定义函数当然没问题了

  3. g是函数自身,g()是函数调用

  4. x = f()  调用f()并把f()的返回值赋给变量x

  5. 同3, x是函数自身,x()是函数调用

查看完整回答
1 反对 回复 2016-07-24
  • worry921
    worry921
    看了您的指点,恍然大悟!非常感谢!
  • 1 回答
  • 1 关注
  • 1333 浏览
慕课专栏
更多

添加回答

举报

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