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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。

    在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。

    查看全部
  • 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person的 Student 将没有 name 和 gender。

    函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。


    查看全部
  • 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。

    因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。


    查看全部
  • 给一个实例动态添加方法并不常见,直接在class中定义要更直观。


    函数 是一种指向

    方法 是一种调用


    因为方法也是一个属性,所以,它也可以动态地添加到实例上,只是需要用 types.MethodType() 把一个函数变为一个方法


    p1.get_grade = types.MethodType(fn_get_grade, p1, Person)


    查看全部
  • 在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。

    查看全部
  • 可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。


    可见,千万不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。

    查看全部
  • self.count=self.count+1  错误

    Person.count=Person.count+1  正确


    查看全部
  • self.count=self.count+1  错误

    Person.count=Person.count+1 正确

    查看全部
  • @functools.wraps(f)

    适中应该在引入了f以后并紧接着它

    查看全部
  • 把一个闭包拆成普通的函数调用会比较困难。不支持闭包的编程语言要实现同样的功能就需要更多的代码

    查看全部
  • 返回函数不要引用任何循环变量,或者后续会发生变化的变量

    需要将有用的“i”“固化”下来

    查看全部
    0 采集 收起 来源:python中闭包

    2019-01-21

  • 注意区分返回函数和返回值

    返回函数可以把一些计算延迟执行

    由于可以返回函数,我们在后续代码里就可以决定到底要不要调用该函数


    输入参数可以越级导入

    查看全部
  • return g 返回函数 return g() 返回值 <function g at xxx>表明是一个函数在内存中的地址
    查看全部
  • dir()返回的属性是字符串列表,如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了

    查看全部
  • 可以用 dir() 函数获取变量的所有属性

    查看全部

举报

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

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