鱼C论坛

 找回密码
 立即注册
查看: 2030|回复: 2

[已解决]函数

[复制链接]
发表于 2020-2-15 14:32:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Q:不知道如何理解函数后的():以下两种情况的的差别就是红色部分有没有括号,第一种情况有括号就可以直接调用funIn而第二种不可以,是否可以将括号理解成参数,只是为空,没有括号就无法调用函数?

请问如何访问 funIn() 呢?

case1:

def funOut():
    def funIn():
        print('宾果!你成功访问到我啦!')
    return funIn()

funOut()
宾果!你成功访问到我啦!

case2:

def funOut():
    def funIn():
        print('宾果!你成功访问到我啦!')
    return funIn

funOut()()
宾果!你成功访问到我啦!
最佳答案
2020-2-15 15:46:40
两者返回的类型不一样,在执行时执行时间也不一样。你看看下面两个的区别就知道了

case 1:

  1. def funOut():
  2.     def funIn():
  3.         print('funIn')
  4.         return "宾果!你成功访问到我啦!"
  5.     print("funOut")
  6.     return funIn()


  7. tmp = funOut()
  8. print(type(tmp))
  9. print(tmp)
复制代码


输出:
  1. funOut
  2. funIn
  3. <class 'str'>
  4. 宾果!你成功访问到我啦!
复制代码



case 2:
  1. def funOut():
  2.     def funIn():
  3.         print('funIn')
  4.         return "宾果!你成功访问到我啦!"
  5.     print("funOut")
  6.     return funIn


  7. tmp = funOut()
  8. print(type(tmp))
  9. print(tmp())
复制代码


结果:
  1. funOut
  2. <class 'function'>
  3. funIn
  4. 宾果!你成功访问到我啦!
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-15 14:48:32 | 显示全部楼层
这么想:
case2的funOut返回的值(函数)没加括号(funIn),返回的是一个函数对象, 所以只用在funOut多加一个小括号给funIn就行了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-2-15 15:46:40 | 显示全部楼层    本楼为最佳答案   
两者返回的类型不一样,在执行时执行时间也不一样。你看看下面两个的区别就知道了

case 1:

  1. def funOut():
  2.     def funIn():
  3.         print('funIn')
  4.         return "宾果!你成功访问到我啦!"
  5.     print("funOut")
  6.     return funIn()


  7. tmp = funOut()
  8. print(type(tmp))
  9. print(tmp)
复制代码


输出:
  1. funOut
  2. funIn
  3. <class 'str'>
  4. 宾果!你成功访问到我啦!
复制代码



case 2:
  1. def funOut():
  2.     def funIn():
  3.         print('funIn')
  4.         return "宾果!你成功访问到我啦!"
  5.     print("funOut")
  6.     return funIn


  7. tmp = funOut()
  8. print(type(tmp))
  9. print(tmp())
复制代码


结果:
  1. funOut
  2. <class 'function'>
  3. funIn
  4. 宾果!你成功访问到我啦!
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-3 05:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表