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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 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 sorted:http://www.imooc.com/code/6053 >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 但 sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 匿名函数:lambda 参数:函数操作(x*x 自动返回计算结果,不写return语句 或 再一个函数)
    查看全部
  • class Person(object): def __init__(self, name, gender, birth, **kw):#注意这里**kw self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems():#注意这里kw.iteritems setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job http://www.cnblogs.com/wocalieshenmegui/p/5859940.html#top setattr(object, name, values) 给对象的属性赋值,若属性不存在,先创建再赋值。 迭代dict的key和value >>> for key, value in d.items():#注意是d.items()不是d ... print key, ':', value ... Lisa : 85 Adam : 95 Bart : 59 和 values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple,所以, iteritems() 不占用额外的内存。
    查看全部
  • 1.upper()函数将字母转换为大写; 2.lower()函数将字母转换为小写; 3.capitalize()函数将字符串的第一个字母变成大写,其他字母变小写。 4.map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回
    查看全部
  • import math 导入函数 math.sqrt()为平方根运算
    查看全部
  • Python支持多重继承 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用
    查看全部
  • isinstance()判断类型
    查看全部
  • 高阶函数:能够接受函数作为参数的函数 1.变量可以指向函数 2.函数的参数可以接收变量 3.一个函数可以接收另一个函数作为参数 4.能接收函数作为参数的函数就是高阶函数 eg: 1.变量可以指向函数 f=abs f(-20) 2.函数名其实就是指向函数的变量 abs=len
    查看全部
  • python的继承 1.一定要用super(Student,self).__init__(name,gender)去初始化父类,否则,继承自Person的Student将没有name和gender 2.函数super(Student,self)将返回当前类继承的父类,即Person,然后调用__init__()方法 注意:self参数已在super()中传入,在__init__()将隐式传递,不需要写出
    查看全部
  • Python支持的函数式编程: 1.不是纯函数式编程:允许有变量 2.支持高阶函数:函数也可以作为变量传入 3.支持闭包:有了闭包就能返回函数 4.有限度的支持匿名函数
    查看全部
  • 1.与属性类似,方法也分为实例方法和类方法 2.在class中定义的全部是实例方法,实例方法第一个参数self是实例本身 3.定义类方法需要通过标记一个@classmethod,该方法将绑定到Person类上 class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __init__(self, name): self.name = name Person.count = Person.count + 1 print Person.how_many()
    查看全部
  • 1.types.MethodType()可以把一个函数变为一个方法 import types def fn_get_grade(self): if self.score >= 80: return 'A' if self.score >= 60: return 'B' return 'C' class Person(object): def __init__(self, name, score): self.name = name self.score = score p1 = Person('Bob', 90) p1.get_grade = types.MethodType(fn_get_grade, p1, Person) print p1.get_grade() # => A
    查看全部
  • 函数式特点: 1.把计算视为函数并非视为指令 2.纯函数式编程:不需要变量,多次调用结果一样,没有副作用,测试简单 3.支持高阶函数,代码简洁
    查看全部
  • 定义Person类的__init__方法,除了接受 name、gender 和 birth 外,还可接受任意关键字参数,并把他们都作为属性赋值给实例。 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)
    查看全部
  • def calc_prod(lst): def cj_prod(): def f(x,y): return x*y return reduce(f,lst,1) return cj_prod f = calc_prod([1, 2, 3, 4]) print f() 先定义能计算乘积的函数,再将此函数返回
    查看全部
  • __cmp__.__len__.__str__
    查看全部

举报

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

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