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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
学习人数
综合评分9.20
575人评价 查看评价
9.6 内容实用
9.0 简洁易懂
9.0 逻辑清晰
  • def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r=f(i) fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2015-04-13

  • @classmethod来声明类方法
    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。
    查看全部
  • types.MethodType(fn, obj, Class)来绑定一个成员方法到某个对象上
    查看全部
  • 实例属性是每个对象私有的 而类属性是整个类所共有的 定义类属性可以直接在class中定义 直接用类名.属性名就可以访问,不需要绑定到对象上
    查看全部
  • types.MethodType() 把一个函数变为一个方法 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • 返回函数可以把一些计算延迟执行 def calc_prod(lst): def mult(): #注意参数,内部定义的函数可以直接使用父函数的参数。 sum=1 for num in lst: sum *= num return sum return mult f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • Python内置的 sorted()函数可对list进行排序 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0 sorted([36, 5, 12, 9, 21], reversed_cmp) def cmp_ignore_case(s1, s2): if s1.upper() > s2.upper() : return 1 elif s1.upper() == s2.upper() : return 0 else : return -1 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
    查看全部
  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。 import math def is_sqr(x): r = int (math.sqrt(x)) #注意强制类型转换的格式 return r*r == x print filter(is_sqr, range(1, 101))
    查看全部
  • reduce()传入的函数 f 必须接收两个参数,reduce()对list的每个元素反复调用函数f,并返回最终结果值 reduce()还可以接收第3个可选参数,作为计算的初始值
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    查看全部
  • 变量可以指向函数 高阶函数:可以接收函数作为参数 def add(x,y,f): return f(x)+f(y) >>> add(-5,9,abs)
    查看全部
  • def __init__(self, name, gender, birth, **kw): for k, v in kw.iteritems(): setattr(self, k, v)
    查看全部
  • Python 3.x中,字符串统一为unicode,不需要加前缀 u,而以字节存储的str则必须加前缀 b Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数: >>> 10 / 3 3.3333333333333335 >>> 10 // 3 3 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。
    查看全部
  • Python是动态语言,解释执行,因此Python代码运行速度慢。 如果要提高Python代码的运行速度,最简单的方法是把某些关键函数用 C 语言重写,能大大提高执行速度。 利用import ... as ...,还可以动态导入不同名称的模块。 利用ImportError错误,我们经常在Python中动态导入模块 try: from cStringIO import StringIO except ImportError: from StringIO import StringIO try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。
    查看全部

举报

0/150
提交
取消
课程须知
本课程是Python入门的后续课程 1、掌握Python编程的基础知识 2、掌握Python函数的编写 3、对面向对象编程有所了解更佳
老师告诉你能学到什么?
1、什么是函数式编程 2、Python的函数式编程特点 3、Python的模块 4、Python面向对象编程 5、Python强大的定制类

微信扫码,参与3人拼团

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

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