为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
python进阶_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Python内置的functools可以用来自动化完成把原函数的所有必要属性都一个一个复制到新函数上
    查看全部
  • def format_name(s): return s[0].upper()+s[1:].lower() or return s.capitalize() or return s.lower().title() print map(format_name, ['adam', 'LISA', 'barT'])
    查看全部
  • @log('DEBUG')即是: log_decoractor = log('DEBUG') function = log_decoractor(function)
    查看全部
  • 高阶函数可以接收函数作为参数,返回一个函数
    查看全部
  • 闭包不能引用循环变量或者后续发生变化的变量
    查看全部
    0 采集 收起 来源:python中闭包

    2015-10-18

  • **kw 接受的是数据是以Dict
    查看全部
  • class Person(object): def __init__(self, name,score): self.name = name self.__score = score self._title = 'Mr' self.__job = 'Student' p=Person('Bob',12) print p.name print p.__score
    查看全部
  • #只有以双下划线开头的"__job"不能直接被外部访问。 class Person(object): def __init__(self, name, score): self.name = name self.__score = score p = Person('Bob', 59) print p.name print p.__score
    查看全部
  • # -*- coding: cp936 -*- #要定义关键字参数,使用 **kw; #除了可以直接使用self.name = 'xxx'设置一个属性外, #还可以通过 setattr(self, 'name', 'xxx') 设置属性。 class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name
    查看全部
  • 由于Python是动态语言,对每一个实例,都可以直接给他们的属性赋值,例如,给xiaoming这个实例加上name、gender和birth属性 class Person(object): pass p1 = Person() p1.name = 'Bart' p2 = Person() p2.name = 'Adam' p3 = Person() p3.name = 'Lisa' L1 = [p1, p2, p3] L2 = sorted(L1, lambda p1, p2: cmp(p1.name, p2.name)) print L2[0].name print L2[1].name print L2[2].name
    查看全部
  • # -*- coding: cp936 -*- #请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。 def calc_prod(lst): def lazy_prod(): def f(x, y): return x * y return reduce(f, lst, 1) return lazy_prod f = calc_prod([1, 2, 3, 4]) print f()
    查看全部
  • # -*- coding: cp936 -*- print "==========================================" print sorted([36, 5, 12, 9, 21]) print "==========================================" #比较函数的定义是,传入两个待比较的元素 x, y, #如果 x 应该排在 y 的前面,返回 -1, #如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 print sorted([36, 5, 12, 9, 21], reversed_cmp) print "==========================================" #sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较: print sorted(['bob', 'about', 'Zoo', 'Credit']) print "==========================================" def cmp_ignore_case(s1, s2): u1 = s1.upper() u2 = s2.upper() if u1 < u2: return -1 if u1 > u2: return 1 return 0 print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
    查看全部
  • # -*- coding: cp936 -*- #请利用filter()过滤出1~100中平方根是整数的数 import math def squre(x): r=int(math.sqrt(x)) return r*r==x print filter(squre,range(1,101))
    查看全部
  • 它可以正确地返回一个闭包g,g所引用的变量j不是循环变量,因此将正常执行。
    查看全部
    0 采集 收起 来源:python中闭包

    2015-10-17

  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部

举报

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

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