为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰

已采纳回答 / 超级无敌大坏蛋
比如说,如果你希望函数的每次执行结果,都是基于这个函数上次的运行结果。我以一个类似棋盘游戏的例子来说明。假设棋盘大小为50*50,左上角为坐标系原点(0,0),我需要一个函数,接收2个参数,分别为方向(direction),步长(step),该函数控制棋子的运动。棋子运动的新的坐标除了依赖于方向和步长以外,当然还要根据原来所处的坐标点,用闭包就可以保持住这个棋子原来所处的坐标。

已采纳回答 / 清邂
def f(*args,**kw):    pass定义好后调用f('a','b',1,x=1,y=2)args=('a','b',1)这个是位置参数kwargs={'y':2,'x':1}这个是关键字参数

已采纳回答 / 橙恤猿
如果需要获取耗时 那么需要在startTime 和 endTime之间运行被装饰的方法  题目上并不是让输出耗时 只是需要输出call time 调用方法的时间

已采纳回答 / 慕粉3961531
r=f(*args,**kw),r是f(*args,**kw)的类型别名,return r 和return f(*args,**kw)是一样的,返回的都是f(*args,**kw)的内容,所以当你删除掉赋值语句时return f(*args,**kw),结果和前面一样。希望能够帮助你,

已采纳回答 / qq_随意就好_03999652
import math def is_sqr(x):    return math.sqrt(x) % 1 == 0 print filter(is_sqr, range(1, 101)) 不要and和and前面那个应该就可以   因为filter就是返回符合条件的元素,所以判断改元素符合条件,那个元素就被返回了,不用亲自去写

已采纳回答 / lin锐
打开cmd,输入这个命令,系统就会帮我们联网下载

已采纳回答 / 慕沐4974640
s[1:]  意思是冲list中根据索引号从1开始知道结束       s[索引开始:结束]

最赞回答 / 放学路上的小学生
<...code...>如果一个类没有继承某类,就应该继承object。

已采纳回答 / 慕粉1459048435
base=8,表示你传入的12345是八进制,而输出结果才是默认的十进制

已采纳回答 / 慕粉1430088708
没有改变。函数名可以看做一个指向该函数的指针, foo = timeit(foo)其实把foo的函数指针指向了timeit 函数,其中timeit返回一个有原来foo函数功能并添加计时的新函数warpper并不能调用了,装饰过后只有装饰后的元素了这样的场景是没错的,但设想一种场景:你已经写好foo函数了,后面也写了很多调用foo的地方,如果你想统计foo的运行时间,你是不是得把所有用到foo()的地方改写成g(foo),再一个你把这个函数交给别人用,那你是不是就不能改了。所以装饰器的效果就体现出来了,只需...

已采纳回答 / 慕用3807241
先写newfn函数,然后写f1和f2的时候在上边加一句@newfn,下边的g1=new_fn(f1)改成g1=f1就行了

已采纳回答 / 慕粉3636939
math.sqrt(x)返回的对象为float,可以试一下:print isinstance(math.sqrt(4), float)

已采纳回答 / _野良
在for i in range(1, 4) 这个迭代中 i 的值是一个会变动的值 在闭包中 不能引用会变动的变量值,所以不能直接用def f(i): return i * i 因此需要把 每次迭代 i 的值 赋予一个变量 即(m = i) 定义函数写成def f(m=i): return m * m 
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消