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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • python中,所有的函数都是可调用对象,一个实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__(). 定义父类(object).本例子中p('tim)即是传入参数,从而调用函数__call__,所以tim 就是赋值到friend中的参数 class Fib(object) 后面def __call__(self, num), 后面可以不是 def __init__() 简化的引入数列符号[],巧妙的引入for in 循环,然后先L.append(a),再引入a,b 等式,最后返回L
    查看全部
    1 采集 收起 来源:python中 __call__

    2016-05-16

  • 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。 鸭子类型,只要你走得像一只鸭子,那么你就是一只鸭子
    查看全部
    0 采集 收起 来源:python中多态

    2016-05-16

  • 如果要限制添加的属性,就可以利用python的一个特殊的__slots__来实现。__slots__是指一个类允许的属性列表 __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态属性,使用__solts__也能节省内存 需要建立一个派生类,才能继续添加score的定义 请注意格式__slots__ = ('name', 'gender').派生类的super功能。super().__init__ 即super(Student, self).__init__(name, gender) 括号内是原来的父类的内容(除了self).super后面要跟连接符,小圆点
    查看全部
    0 采集 收起 来源:python中 __slots__

    2016-05-16

  • 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。 就是说,函数可以跟类没有关系,而类里面的方法,必须传入self参数的
    查看全部
  • 实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的
    查看全部
  • 代码中如果加入score就会实例化错误 因为下面实例化的代码,调用Person的时候,init函数,少了一个参数, 只要换成score=0,变成默认参数,或者,在实例化的时候,把score也写上就ok
    查看全部
  • @property装饰的属性为只读属性
    查看全部
    0 采集 收起 来源:python中 @property

    2016-05-16

  • 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 还有一个for循环 for k,v in kw.iteritems():
    查看全部
  • sorted 的写法是 一个list ,一个方法 cmp的方法经常用到
    查看全部
  • 问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • def count(): fs = [] for i in range(1, 4): def f(m = i): return m * m fs.append(f) return fs f1, f2, f3 = count() print f1(), f2(), f3() 方法:问题的产生是因为函数只在执行时才去获取外层参数i,若函数定义时可以获取到i,问题便可解决。而默认参数正好可以完成定义时获取i值且运行函数时无需参数输入的功能,所以在函数f()定义中改为f(m = i),函数f返回值改为m*m即可.
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • 返回闭包不能引用循环变量
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • 但是,考察上一小节定义的 calc_sum 函数: def calc_sum(lst): def lazy_sum(): return sum(lst) return lazy_sum 注意: 发现没法把 lazy_sum 移到 calc_sum 的外部,因为它引用了 calc_sum 的参数 lst。 像这种内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。
    查看全部
    0 采集 收起 来源:python中闭包

    2016-05-16

  • 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 偏函数的写法, 偏函数名 = functools.partial(原函数名,原函数里面的方法或者参数)
    查看全部
    0 采集 收起 来源:python中偏函数

    2016-05-15

举报

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

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