鱼C论坛

 找回密码
 立即注册
查看: 1171|回复: 4

[已解决]functools.partial 模块使用方法求助

[复制链接]
发表于 2018-6-5 19:05:34 | 显示全部楼层 |阅读模式

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

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

x
  1. def countdown(num, direction=None):
  2.     if direction is None:
  3.         return partial(countdown, num)                  # return partial(countdown, 2)
  4.     while num > 0:
  5.         print(num)
  6.         num -= 1
  7.     return direction


  8. countdown(5)(5)
复制代码


调用countdown(5) ,因为direction属性为默认的None,返回的应该是countdown函数本身,这时候countdown的参数有几个?如果把第三行替换成注释里的内容,两者有什么区别?
求大神解答,灰常感谢
最佳答案
2018-6-5 21:28:31
https://blog.csdn.net/cassiepython/article/details/76653897
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-6-5 21:28:31 | 显示全部楼层    本楼为最佳答案   
https://blog.csdn.net/cassiepython/article/details/76653897
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-6-5 22:57:12 | 显示全部楼层
瞬秒爆加速 发表于 2018-6-5 21:28
https://blog.csdn.net/cassiepython/article/details/76653897

非常感谢,帮了我的大忙
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-6-5 23:00:46 | 显示全部楼层
1. 在 return partial(countdown, 2)的条件下,调用countdown(5)(传递进去的参数是多少无所谓)返回的countdown函数中的num参数被固定成2
2. 在return partial(countdown, num)的条件下,调用countdown(5)(传递进去的参数被固定)返回的countdowm函数中的nun参数被固定为传递进去的参数,也就是5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-6 21:54:06 | 显示全部楼层
本帖最后由 瞬秒爆加速 于 2018-6-6 21:56 编辑
Python_Freshman 发表于 2018-6-5 23:00
1. 在 return partial(countdown, 2)的条件下,调用countdown(5)(传递进去的参数是多少无所谓)返回的co ...


是这样,partial(countdown, 2)其实就是固定一个参数,和重新设置这个参数,如果是调用函数countdown(num)在继续传入参数就会报错了,这个用途可能是一些特定函数需要预先改变参数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 07:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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