czh1303541051 发表于 2020-4-17 19:44:37

访问函数问题

第一个访问,funout并没有返回值对吧,只是funin返回了一个funin方法,第二个out一样没有返回值,给funin返回了一个值,想先确认前面说的对不对,然后就是为什么去掉return,就打印不出来了,我试过不嵌套函数不返回值可以打印,全乱了,希望大佬能从头挨个解答

请问如何访问funin函数?
def funout():
    def funin():
      print('bingo,你成功访问到我了')
    return funin()
直接利用funout()就可以访问了


请问如何访问funin函数呢?
def funout():
    def funin():
      print('bingo,你成功访问到我了')
    return funin

funout()()进行访问

_荟桐_ 发表于 2020-4-17 20:05:32

funout()有返回值,就是funin【或者funin()】
带括号的是执行这个函数
不带的是函数的内存地址
也可以简单粗暴的理解为 函数名+() = 执行函数
第一个funout()返回了funin(),于是就会去执行funin()
第二个funout()返回了funin      ,在给他加个括号就是funin()了
还有,return后面的就是函数的返回值

ba21 发表于 2020-4-17 20:07:42


czh1303541051 发表于 2020-4-17 22:57:26

ba21 发表于 2020-4-17 20:07


我把第一个函数试了试用funout()()调用结果出来但是会报'NoneType' object is not callable这是怎么回事按你的说法我第一个这样调用应该没啥问题吧

czh1303541051 发表于 2020-4-17 22:58:02

_荟桐_ 发表于 2020-4-17 20:05
funout()有返回值,就是funin【或者funin()】
带括号的是执行这个函数
不带的是函数的内存地址


。。感觉没回答出我想问的点上谢了

jkluoling1992 发表于 2020-4-17 23:14:36

czh1303541051 发表于 2020-4-17 22:57
我把第一个函数试了试用funout()()调用结果出来但是会报'NoneType' object is not callable这是怎 ...

首先要理解在函数名后面加() 是表示调用,第一个函数你调用就可以输出值了,再加一次调用,是准备给一个数值来一个函数调用?

ba21 发表于 2020-4-18 00:02:52

czh1303541051 发表于 2020-4-17 22:57
我把第一个函数试了试用funout()()调用结果出来但是会报'NoneType' object is not callable这是怎 ...

内部函数没返回值,不报NoneType还能报啥??????????????
页: [1]
查看完整版本: 访问函数问题