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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 从某类继承出一个新类New时,只需添加额外的属性,其他已有属性利用super(New,self).__init__(已有属性)初始化父类获得。
    查看全部
  • 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。实例可以调用类方法,类属性. 实例方法和实例属性不可通过类调用即Person.实例属性或者实例方法 而是p1.实例方法或者属性
    查看全部
  • 直接把 lambda 函数赋值给 self.get_grade 和绑定方法有所不同,函数调用不需要传入 self,但是方法调用需要传入 self。
    查看全部
  • 在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度
    查看全部
  • 在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 在类内部是可以调用使用私有属性的,但是外部无法使用
    查看全部
  • 类本身也是一个对象,如果在类上绑定一个属性,则所有实例都可以访问类的属性,并且,所有实例访问的类属性都是同一个!也就是说,实例属性每个实例各自拥有,互相独立,而类属性有且只有一份!!!当Person类的类属性改变时,所有实例访问到的类属性都改变了。因为类属性是直接绑定在类上的,所以,访问类属性不需要创建实例,就可以直接访问. 创建实例一定会调用__init__()方法
    查看全部
  • 如果一个属性由双下划线开头(__),该属性就无法被外部访问。以单下划线开头的属性"_xxx"虽然也可以被外部访问,但是,按照习惯,他们不应该被外部访问。如果一个属性以"__xxx__"的形式定义,那它又可以被外部访问了,以"__xxx__"定义的属性在Python的类中被称为特殊属性
    查看全部
  • 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上属性,__init__()的第一个参数必须是self.要定义关键字参数,使用 **kw; setattr()表示你可以通过该方法,给对象添加或者修改指定的属性。 setattr()方法接受3个参数:setattr(对象,属性,属性的值)setattr(self,'name','xxx')对应于self.name='xxx'
    查看全部
  • 由于Python是动态语言,类中的属性不必预先定义。对每一个实例,都可以直接给他们的属性赋值。每个实例可以拥有各自不同的属性,使用属性和普通变量一样。 sorted() 是高阶函数,接受一个比较函数。
    查看全部
  • 如果使用 from...import 导入 log 函数,势必引起冲突。这时,可以给函数起个“别名”来避免冲突:from logging import log as logger # logging的log现在变成了logger
    查看全部
  • 区分包和普通目录:包下面有个_init_.py,每层必须要有
    查看全部
  • functools.partial就是帮助我们创建一个偏函数的,把一个参数多的函数变成一个参数少的新函数,少的参数需要在创建时指定默认值, 新函数名 = functools.partial(函数名, 指定少的参数的默认值)比如:int2 = functools.partial(int, base=2)
    查看全部
    1 采集 收起 来源:python中偏函数

    2015-08-14

  • 可见,由于decorator返回的新函数函数名已经不是'factorial',而是@lperformance内部定义的'wrapper'。这对于那些依赖函数名的代码就会失效。decorator还改变了函数的__doc__等其它属性。如果要让调用者看不出一个函数经过了@decorator的“改造”,就需要把原函数的一些属性复制到新函数中:Python内置的functools可以用来自动化完成这个“复制”的任务:
    查看全部
  • 要实现带参数的@performance,就需要实现:my_func = performance('ms')(my_func) 需要3层嵌套的decorator来实现。
    查看全部
  • Python的 decorator 本质上就是一个高阶函数,它接收一个函数f作为参数,然后,返回一个新函数fn。在这个新函数里调用了所接收的那个函数f。使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。要让 @decorator 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用: *args可以当作可容纳多个变量组成的tuple(元组) **kw可以当作容纳多个key和value的dict,同时使用*args和**kws时,必须*args参数列要在**kw前
    查看全部

举报

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

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