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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 面向对象编程 基本思想:类和实例 类:用于定于抽象类型(比如人、汽车、花等抽象的一类事物) 实例:根据类的定义被创建出来的(比如人的实例有小明、小胡等具体的人,他们有年龄、性别和爱好等不同的属性和方法)
    查看全部
  • 类方法,用@classmothod装饰器修饰,参数一般是cls(类本身),可以引用类属性(其实类似与c#的静态方法,不需要实例,直接是:类名+方法)
    查看全部
  • 安装pip的路径 两种方法安装第三方模块 1.easy_install 2.pip install(推荐,因为pip内置)
    查看全部
  • L2 = sorted(L1,lambda p1,p2:cmp(p1.name,p2.name)) cmp是内置函数
    查看全部
  • filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部
  • map()函数可以接收一个一个参数的函数和一个list,并对list参数的每一个元素应用那个参数指向的函数 reduce()函数可以接收一个两个参数的函数和一个list,并对list的每一个元素反复调用函数,第一次计算使用list的两个元素并将结果作为那两个参数的函数的x参数,第二次计算将第一次计算的结果作为函数的x参数将list的第三个元素作为函数的y参数,以此类推,reduce()函数除了以上两个参数外,还可以传入第三个参数作为计算的初始值
    查看全部
  • math.sqrt开根号函数
    查看全部
  • 不会重复吗
    查看全部
  • lambda p1,p2:cmp(p1.name,p2.name) 参见匿名函数
    查看全部
  • 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。 class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __call__(self, friend): print 'My name is %s...' % self.name print 'My friend is %s...' % friend 现在可以对 Person 实例直接调用: >>> p = Person('Bob', 'male') >>> p('Tim') My name is Bob... My friend is Tim...
    查看全部
    0 采集 收起 来源:python中 __call__

    2018-03-22

  • __slots__可以限时添加的属性;__slots__是指一个类允许的属性列表: class Student(object): __slots__ = ('name', 'gender', 'score') def __init__(self, name, gender, score): self.name = name self.gender = gender self.score = score 这样Student就只能允许有'name', 'gender', 'score' 属性 __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存。
    查看全部
    0 采集 收起 来源:python中 __slots__

    2017-12-26

  • 因为Python支持高阶函数,在函数式编程中我们介绍了装饰器函数,可以用装饰器函数把 get/set 方法“装饰”成属性调用: class Student(object): def __init__(self, name, score): self.name = name self.__score = score @property def score(self): return self.__score @score.setter def score(self, score): if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score 注意: 第一个score(self)是get方法,用@property装饰,第二个score(self, score)是set方法,用@score.setter装饰,@score.setter是前一个@property装饰后的副产品。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • class Student(object): def __init__(self, name, score): self.name = name self.score = score def __str__(self): return '(%s: %s)' % (self.name, self.score) __repr__ = __str__ def __cmp__(self, s): if self.score < s.score: return 1 elif self.score > s.score: return -1 elif self.name < s.name: return -1 elif self.name > s.name: return 1 else: return 0 L = [Student('Tim', 99), Student('Bob', 88), Student('Alice', 99)] print sorted(L)
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-03-22

  • 有点绕
    查看全部
  • L.sort(cmp=None, key=None, reverse=False) 这是sort函数的原型 cmp接受一个函数,拿整形举例,形式为: def f(a,b): return a-b 如果排序的元素是其他类型的,如果a逻辑小于b,函数返回负数;a逻辑等于b,函数返回0;a逻辑大于b,函数返回正数就行了。 key参数 key也是接受一个函数,不同的是,这个函数只接受一个元素,形式如下: def f(a): return len(a) key接受的函数返回值,表示此元素的权值,sort将按照权值大小进行排序 (3) reverse参数 接受False 或者True 表示是否逆序 Python中sort()函数举例: (1)按照元素长度排序 L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}] def f(x): return len(x) sort(key=f) print L //输出: //[{1: 9}, {1: 5, 3: 4}, {1: 3, 6: 3}, {1: 1, 2: 4, 5: 6}] (2)按照每个字典元素里面key为1的元素的值排序 L = [{1:5,3:4},{1:3,6:3},{1:1,2:4,5:6},{1:9}] def f2(a,b): return a[1]-b[1] L.sort(cmp=f2) print L //输出: //[{1: 1, 2: 4, 5: 6}, {1: 3, 6: 3}, {1: 5, 3: 4}, {1: 9}]
    查看全部
    0 采集 收起 来源:python中偏函数

    2017-12-25

举报

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

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