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

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()...   




worry921
浏览 1334回答 1
1回答

寻梦的男孩

“在Python中,函数本身也是对象”,所用问题皆可用这句话来解释。从上到下,按顺序: print 'call f()...'  仅仅是输出一个字符串'call f()...' 而已。。而已。。。加这句估计是想让看到输出了'call f()'就知道函数f()被调用了吧;函数本身就是一个对象,在对象中定义函数当然没问题了g是函数自身,g()是函数调用x = f()  调用f()并把f()的返回值赋给变量x同3, x是函数自身,x()是函数调用
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python