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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.17
571人评价 查看评价
9.6 内容实用
9.0 简洁易懂
8.9 逻辑清晰
我死缠烂打做到模块和包的时候,发现大家竟然都跳过了装饰器和闭包?
这里听不懂的可以去bilibili搜索:python的闭包与装饰器 看几遍就懂了

最新回答 / carryLess
没哪里不对import osprint os.path.isdir(r'C:\Windows')print os.path.isfile(r'C:\Windows\notepad.exe')这一段拿到自己的电脑上去试

最新回答 / 哆啦D梦3455891
Rational()中第一个参数为运算后的分子,第二个参数为运算后的分母,r1.p/r1.q+r2.p/r2.q将分母化为相同的再计算可得。同理可得-,*,/

最新回答 / wo蜗牛niu
斐波那契数列定义:a1=0,a2=1.........an=a(n-1)+a(n-2)def __init__(self, num):   # num为数列长度        a, b, L = 0, 1, []  #给a赋初值0,b赋初值1,L创建一个空list 。        for n in range(num):    #循环依次生成数列数值            L.append(a)   #把生成的数值添加到列表末尾            a, b = b, a + b   #将a赋值为b,...

最新回答 / 为何_
分数乘法计算方式,属于固定数学公式.和代码额外逻辑无关

最新回答 / 为何_
不要纠结,这就是格式化输出的语法,代表%后面是参数,多参数记得加括号,要是个元组

最赞回答 / 为何_
导入time 模块 然后开始定义我们的闭包函数,我之前不知道高阶函数,都叫闭包,这只是个名字不要纠结首先闭包至少两层函数嵌套,这没问题那就定义一个performance函数,接下来返回值要是一个函数,那就写好return 一个函数,在开始定义里面函数这一层内层函数一定要执行想要装饰的函数本身,否则就不叫装饰器了,而传进来的函数就是performance的参数f,即f 就是@performance这句代码下面的函数 factorial,至于为什么是这个函数,那就是@语法的内部操作了.不用太纠结所以在perf...

最新回答 / 为何_
没什么关系只是写个函数内用,重点在于理解装饰器,这里直接写pass都行

最赞回答 / qq_慕运维7244209
说说我的理解:原来因为延时调用导致i直接变成3,现在在for循环中新定义一个可以传入变量的函数,然后里面再套上计算这个变量平方的函数,这样一来变量就被保存下来了

最赞回答 / sheeeeeeep
个人拙见:log_decorator(f) 这个是装饰器,它为了装饰 f 而存在,所以他有参数 f ,而在它内部有fn这个闭包,这个闭包是为了 传 f 的参数设置的,所以它的参数为 *args, **kw,在它内部,除了r = f(*args, **kw), 其他都是装饰,在装饰完以后,必然要返回所装饰的函数 f 即 return r.  顺着这个意义,外层自然要返回 fn,这里的fn就是r,顺着内层一层层返回,到这里,普通的无参装饰器就完事了,但这里装饰器也有参数,所以再套一层performance(u...

最新回答 / qq_沉迷学习无法自拔_0
<...code...>原理不知道,以下希望能帮到你不加@property。那就是方法,用s.grade()调用,可得到正确返回值(CBA)加@property。装饰为属性,用s.grade即可返回CBA

最赞回答 / 启林
意思是:count()函数被调用后,返回3个值(这3个值其实组成了一个tuple)由于tuple是有序的,tuple中的3个值分别赋值给 f1, f2, f3即:tuple = count()f1 = tuple[0]f2 = tuple[1]f3 = tuple[2]
import math

def is_sqr(x):
if int(math.sqrt(x))**2 == x :
return x

print filter(is_sqr, range(1,101))

最赞回答 / Accenzer
你的描述看了一部分,感觉你已经完全被绕晕了。所以不针对你的提问一一回答,只说一下我觉得正确的理解,你可以看完后跑一下,我没有跑不保证每处细节都正确。首先,fs 是一个 list,只不过其中的元素不是数字而是函数。也就是说(fs[0])(),是可以调用该函数的。另外,i 的作用域实在count函数内的,所以当延迟调用 fs 里的任意函数时,去寻找 i 的值时,i 已经变成了 3。所以所有的结果都是9。另外 f1, f2, f3 = count(),是结构赋值语句,也就是说 f1 是 fs 里的第一个函数。f...
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类
意见反馈 帮助中心 APP下载
官方微信
友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消