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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
    查看全部
  • def __init__(self, name, gender, **kw): self.name = name self.gender = gender self.__dict__.update(kw) p = Person('Bob', 'Male', age=18, course='Python') print p.age print p.course
    查看全部
  • dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了:
    查看全部
  • 先可以用 type() 函数获取变量的类型,它返回一个 Type 对象; 可以用 dir() 函数获取变量的所有属性:
    查看全部
  • 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。
    查看全部
  • class Fib(object): def __init__(self, num): a, b, L = 0, 1, [] for n in range(num): L.append(a) a, b = b, a + b self.numbers = L def __str__(self): return str(self.numbers) __repr__ = __str__ def __len__(self): return len(self.numbers) f = Fib(10) print f print len(f) 其中,def __str__(self): return str(self.numbers) 写成:def __str__(self): return self.numbers 就不对。。。回头再好好学习下__str__ 函数
    查看全部
    0 采集 收起 来源:python中 __len__

    2017-06-25

  • 如果list不仅仅包含 Student 类,则 __cmp__ 可能会报错,怎么解决呢? 可以写一个filter函数试试 def isStudent(x): if isinstance(x,Student): return True else: return False L = [Student('Tim', 99), Student('Bob', 88), 100, 'Hello'] print sorted(filter(isStudent,L)) filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-06-25

  • **kw是关键字参数,用于字典 iteritems()用于字典kw的遍历 setattr(self, k, v)就等价于self.k = v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • lambda x: x * x 实际上就是: def f(x): return x * x 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数
    查看全部
  • http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431835236741e42daf5af6514f1a8917b8aaadff31bf000 闭包 当一个函数返回了一个函数后,其内部的局部变量还被新函数引用。 另一个需要注意的问题是,返回的函数并没有立刻执行,是直到调用了f()才执行。例子: def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 在上面的例子中,每次循环,都创建了一个新的函数,然后,把创建的3个函数都返回了。 #关于 f1, f2, f3 = count()个人理解:直接调用函数count()返回的是一个包含三个函数的list,[fs,fs,fs] f1, f2, f3 = count()操作是将list中三个函数按顺序分别赋予f1,f2,f3。此时f1,f2,f3成为函数。 你可能认为调用f1(),f2()和f3()结果应该是1,4,9,但结果是:全部都是9!原因在于返回的函数引用了变量i,但它并非立刻执行。等到3个函数都返回时,它们所引用的变量i已经变成了3,因此最终结果为9。 返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。 正确引用循环变量的方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变: def count(): def f(j): def g(): return j*j return g fs = [] for i in range(1, 4): fs.append(f(i)) # f(i)立刻被执行,因此i的当前值被传入f() return fs >>> f1, f2, f3 = count() >>> f1() 1 >>> f2() 4 >>> f3() 9
    查看全部
    0 采集 收起 来源:python中闭包

    2018-03-22

  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure),特点是返回的函数还引用了外层函数的局部变量,返回函数不要引用任何循环变量,或者后续会发生变化的变量。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-06-25

  • map函数返回是一对一的序列,输入多少元素,输出多少结果 reduce则是返回一个结果。 reduce函数也是接受两个参数,第一个是函数,第二个是序列,但是它是处理完前面的元素,将结果和下一个元素一起继续处理。
    查看全部
  • 如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性,有很多预定义的特殊属性可以使用,通常我们不要把普通属性用"__xxx__"定义。
    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问
    查看全部
  • 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')
    查看全部

举报

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

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