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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • **kw是关键字参数,用于字典 iteritems()用于字典kw的遍历 setattr(self, k, v)就等价于self.k = v 综上就是,遍历dict kw 中的属性,给每个属性设置了属性值
    查看全部
  • 装饰器的作用
    查看全部
  • python:函数装饰器简化写法
    查看全部
  • 函数装饰器的使用:在不改变原函数的情况下,给函数增加新功能
    查看全部
  • 闭包的使用
    查看全部
    0 采集 收起 来源:python中闭包

    2017-11-17

  • 1、**args表示任意多个参数,**kw表示任意多个关键字参数, 区别是,前者表示普通参数,后者表示有默认值的参数 2、如果只是简单的封装原有的函数,定义一个外层函数即可 但是刻意定义一个内层闭包函数并返回,是为了赋值给原有函数的变量(更新函数变量的引用) 结果就是,对于自定义的函数,调用的时候已经不是原来自定义的那个函数地址,而是已经被换过的闭包函数地址(当然,必须加上@修饰器,不然调用的还是原来的地址) 先来看个例子: def foo(*args, **kwargs): print 'args = ', args print 'kwargs = ', kwargs print '---------------------------------------' if __name__ == '__main__': foo(1,2,3,4) foo(a=1,b=2,c=3) foo(1,2,3,4, a=1,b=2,c=3) foo('a', 1, None, a=1, b='2', c=3) 输出结果如下: args = (1, 2, 3, 4) kwargs = {} --------------------------------------- args = () kwargs = {'a': 1, 'c': 3, 'b': 2} --------------------------------------- args = (1, 2, 3, 4) kwargs = {'a': 1, 'c': 3, 'b': 2} --------------------------------------- args = ('a', 1, None) kwargs = {'a': 1, 'c': 3, 'b': '2'} ---------------------------------------
    查看全部
  • 参考: class C(A, B) def __init__(self, a, b): A.__init__(self, a) B.__init__(self, b)
    查看全部
  • 为什么用json.load解读出来的字符串前面都带着u? [最新 梦的双眼皮 的回答] 表示用的是UTF-8编码
    查看全部
    0 采集 收起 来源:python中多态

    2017-11-16

  • 定义函数时使用的默认参数算是静态的,即获得的同时即进行了赋值,不会导致跟随i而变化 def count(): fs = [] for i in range(1, 4): def calc(m = i): return m*m fs.append(calc) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2017-11-16

  • 关键字lambda表示匿名函数
    查看全部
  • 我觉得,可以输入参数的装饰器就是在没参数输入装饰器外面再嵌套一个函数。因为需要把这个参数转入到没有参数输入装饰器里。简单理解就是,你想另外输入参数就要嵌套一个函数
    查看全部
  • getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr,Getattr用于返回一个对象属性,或者方法 2.setattr(): setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。 setattr()方法接受3个参数:setattr(对象,属性,属性的值) 3 delattr(): 而delattr()表示你可以通过该方法,删除指定的对象属性。 delattr方法接受2个参数:delattr(对象,属性) ************************************************************************** getattr(Instance , 'name, 'not find') #如果Instance 对象中有属性name则打印self.name的值,否则打印'not find' setattr(sinfo,'python','haha')##和:sinfo.python = 'haha' 效果一样 delattr(sinfo,'python')##和del sinfo.python效果一样
    查看全部
  • def log(f): #定义装饰器高阶函数,以要装饰的函数f作为参数 def fn(x): #内部相当于重构要装饰的函数f,重命名为fn print 'call ' + f.__name__ + '()...' #加特技print return f(x) #为了不重写原来的函数f的代码,所以用return f(x)代替原来的代码。 return fn 将被装饰过的新的函数fn返回
    查看全部
  • python3中,要使用reduce,得从functools中引入,加上: from functools import reduce
    查看全部
  • 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-11-15

举报

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

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