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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 由于属性可以是普通的值对象,如 str,int 等,也可以是方法,还可以是函数,大家看看下面代码的运行结果,请想一想 p1.get_grade 为什么是函数而不是方法: class Person(object): def __init__(self, name, score): self.name = name self.score = score self.get_grade = lambda: 'A' p1 = Person('Bob', 90) print p1.get_grade print p1.get_grade() ?不会了怎么办 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • def count(): fs = [] for i in range(1, 4): def f(j): def g(): return j*j return g r=f(i) fs.append(r) print i return fs f3, f2, g1 = count() print f3(), f2(), g1()
    查看全部
    0 采集 收起 来源:python中闭包

    2016-01-02

  • 请定义Person类的__init__方法,除了接受 name、gender 和 birth 外,还可接受任意关键字参数,并把他们都作为属性赋值给实例。 ?不会了怎么办 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 参考代码: 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') print xiaoming.name print xiaoming.job
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    查看全部
  • 装饰器
    查看全部
  • 装饰器作用
    查看全部
  • _init.py 一个包中必须含有这个文件, 可以为空
    查看全部
  • _init_.py
    查看全部
  • def log(f): def fn(*args, **kw): print 'call ' + f.__name__ + '()...' return f(*args, **kw) return fn 现在,对于任意函数,@log 都能正常工作。
    查看全部
  • f.__name__ 引用函数名
    查看全部
  • def count(): fs = [] for i in range(1, 4): def g(x): def f(): return x*x return f k=g(i) fs.append(k) return fs f1, f2, f3 = count() print f1(), f2(), f3()
    查看全部
    0 采集 收起 来源:python中闭包

    2015-12-31

  • 1.lambda定义匿名函数,lambda x:x*x,冒号前面的x表示函数的参数,返回值就是该表达式的结果 2.匿名函数只能有一个表达式,不写return,返回值就是该表达式的结果
    查看全部
  • 1.像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure) 2.返回函数不要饮用任何循环变量或后续会发生变化的变量
    查看全部
    0 采集 收起 来源:python中闭包

    2015-12-31

  • 1.函数的返回值可以是函数,返回函数可以延时计算 2.要对返回的函数进行调用,才能计算结果 :f()
    查看全部
  • reduce()还可以接收第3个可选参数,作为计算的初始值。
    查看全部

举报

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

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