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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • __len__章节中也有计算斐波那契
    查看全部
    0 采集 收起 来源:python中 __call__

    2015-09-16

  • 一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。 只要正确实现了__len__()方法,就可以用len()函数返回Students实例的“长度”: class Students(object): def __init__(self, *args): self.names = args def __len__(self): return len(self.names) ******************************* 这么写定义变量和如此些斐波那契数列的函数 真是 太妖孽了!
    查看全部
    0 采集 收起 来源:python中 __len__

    2015-09-16

  • 代码真是比java和C简练很多!
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2015-09-16

  • def count(): fs = [] for i in range(1, 4): def f(i): def g(): return i*i return g r = f(i) ###←重点是这里调用过f了,已将i值使用 fs.append(r) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2015-09-16

  • 可以提供任意额外的关键字参数,并绑定到实例:传入**kw 即可传入任意数量的参数,并通过 setattr() 绑定属性。
    查看全部
  • 由于Python的动态特性,json.load()并不一定要从一个File对象读取内容。任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load()。
    查看全部
    0 采集 收起 来源:python中多态

    2015-09-16

  • kw.iteritems():历遍字典kw的所有key和value,分别匹配的是k,v
    查看全部
  • setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。 setattr()方法接受3个参数:setattr(对象,属性,属性的值) setattr(self,k,v)相当于self.k = v
    查看全部
  • >>> getattr(s, 'name') # 获取name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 >>> s.name 'Adam' >>> getattr(s, 'age') # 获取age属性,但是属性不存在,报错: Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'Student' object has no attribute 'age' >>> getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • ,类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份。
    查看全部
  • 由于创建实例必定会调用__init__()方法,所以在这里修改类属性 count 很合适。
    查看全部
  • __future__ 双下划线
    查看全部
  • s[0].upper() s[1:]lower()
    查看全部
  • 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。
    查看全部
  • 注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。 # 希望一次返回3个函数,分别计算1x1,2x2,3x3: def count(): fs = [] for i in range(1, 4): def f(): return i*i fs.append(f) return fs f1, f2, f3 = count() 你可能认为调用f1(),f2()和f3()结果应该是1,4,9,但实际结果全部都是 9(请自己动手验证) 原因就是当count()函数返回了3个函数时,这3个函数所引用的变量 i 的值已经变成了3。 首先这题的要点是如何在闭包内部不使用外部循环变量,那么将i作为参数传入,所以fs.append(f(i)).但是下面的是函数调用:print f1(), f2(), f3(). 所以调用f(i)时要返回一个函数名。则在f()函数里面再写一个函数a().a()函数接受f()函数的参数,计算参数的平方。而在f()函数里面就可以直接返回a()函数的函数名了
    查看全部
    0 采集 收起 来源:python中闭包

    2015-09-15

举报

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

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