鱼C论坛

 找回密码
 立即注册
查看: 4056|回复: 9

[学习笔记] 零基础Python第二十讲:

[复制链接]
发表于 2017-12-9 23:23:08 | 显示全部楼层 |阅读模式

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

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

x
  1. >>> def FunX(x):
  2.         def FunY(y):
  3.                 return x*y
  4.         return FunY()

  5. >>> def FunX(x):
  6.         def FunY(y):
  7.                 return x*y
  8.         return FunY
复制代码

return FunY不能加括号?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-10 07:34:56 From FishC Mobile | 显示全部楼层
可以
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-10 08:00:52 | 显示全部楼层
就是一个返回值可以加的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-10 14:49:16 | 显示全部楼层
  1. >>> def FunX(x):
  2.         def FunY(y):
  3.                 return x*y
  4.         return FunY

  5. >>> FunX(5)(8)
  6. 40
  7. >>> def FunX(x):
  8.         def FunY(y):
  9.                 return x*y
  10.         return FunY()

  11. >>> FunX(5)(8)
  12. Traceback (most recent call last):
  13.   File "<pyshell#17>", line 1, in <module>
  14.     FunX(5)(8)
  15.   File "<pyshell#16>", line 4, in FunX
  16.     return FunY()
  17. TypeError: FunY() missing 1 required positional argument: 'y'
  18. >>>
复制代码

加括号和不加括号的区别。。。。。为什么会这样?
是因为FunY()没有输入参数么?那么第一个为什么不用输入参数?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-10 15:31:04 From FishC Mobile | 显示全部楼层
py大神 发表于 2017-12-10 14:49
加括号和不加括号的区别。。。。。为什么会这样?
是因为FunY()没有输入参数么?那么第一个为什么不用 ...

不加括号返回的就是一个指向函数的指针,调用的时候需要加上括号才能实现函数功能
加了括号后就直接能实现函数功能了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-12-10 17:19:47 | 显示全部楼层
BngThea 发表于 2017-12-10 15:31
不加括号返回的就是一个指向函数的指针,调用的时候需要加上括号才能实现函数功能
加了括号后就直接能实 ...

那为什么加了括号的FunX(5)(8)会报错?
是不是因为加了括号的return FunY()会直接实现return x*y 从而忽略def FunY(y)?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-10 17:27:26 | 显示全部楼层
BngThea 发表于 2017-12-10 15:31
不加括号返回的就是一个指向函数的指针,调用的时候需要加上括号才能实现函数功能
加了括号后就直接能实 ...

他的报错说没有y的参数,但是不是给他了8么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-10 17:49:11 From FishC Mobile | 显示全部楼层
py大神 发表于 2017-12-10 17:27
他的报错说没有y的参数,但是不是给他了8么?


return的时候函数括号里面要写上y
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-10 20:17:56 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-10 20:28:40 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-19 20:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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