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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.17
571人评价 查看评价
9.6 内容实用
9.0 简洁易懂
8.9 逻辑清晰
我才知道要操作类属性必须在函数里最开始,第二行在执行加一就报错

已采纳回答 / 为何_
你尝试加个括号吧print()

最新回答 / 慕桂英2065712
cmp 应该是sorted的参数(函数) 这个过程相当于一个装饰器的作用 返回新的函数赋给cmp

已采纳回答 / 大气如宏
代码没问题,问题在于是在交互方式下输入的,交互方式下输入换行有特殊规则。建立把这段代码放入文件中,再运行!

最新回答 / 慕姐6371821
def new_fn(f):
   def fn(x):
      print('call'+f.__name__+'()')
      return f(x)
   return fn
new_fn(abs)(1)
试试应该是abs(1)直接就是一个值,那么new_fn就当于你写的new_fn(1)此时由于fn未接收参数,对于fn内部的两句话完全没有执行,return fn直接返回fn所在的位置

已采纳回答 / qq_慕无忌9227020
1和2是你在运行代码p1 = Person('Bob') p2 = Person('Alice')时打印出来的,而非try expect函数打印出来的,因为—count是私有属性无法访问,所以打印AttributeError
def count():
fs = []
for i in range(1, 4):
def foo(i):
def bar():
return i*i
return bar

fs.append(foo(i))
return fs

f1, f2, f3 = count()
print f1(), f2(), f3()
gcd函数用的其实是欧几里得算法求最大公约数,也就是初中学的辗转相除法
sorted = functools.partial(sorted,key=lambda a: a.name.lower())
第三部分:

@performance('ms')
def factorial(n):
return reduce(lambda x,y: x*y, range(1, n+1))

print factorial.__name__
第二部分:
# 即,当该函数完成后,factorial实际上是__performance函数,
# 只是名字变了
@functools.wraps(f)# 这里复制了factorial的函数名
def __performance(*args, **kw):# 传入factorial修饰前的参数
return
return __performance
return _performance
本节详解:
第一部分
#coding:utf-8

#上面那一行为了改变编码方式,不然无法运行
import time, functools

def performance(unit):
# 第一层,调用时,传入'ms',
# 返回_performance函数
def _performance(f):
# 第二层,调用时,传入factorial,
# 返回__performance函数,并将其#赋值给factorial
这几节内容并不难,恶心的是每一节的代码任务很不清晰,加上小白对于模块的应用两眼一抹黑,不觉得难才怪。这几节很不负责任

最新回答 / 大气如宏
及格和不及格都是B?不及格应该是C吧!
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消