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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 方法也是一个属性,所以,它也可以动态地添加到实例上,可以用 types.MethodType() 把一个函数变为一个方法 p1.get_grade = types.MethodType(fn_get_grade, p1, Person)
    查看全部
  • 1.实例的方法就是在类中定义的函数,它的第一个参数永远是 self,指向调用该方法的实例本身,其他参数和一个普通函数是完全一样的。 2.一个实例的私有属性就是以__开头的属性,无法被外部访问,但在实例方法内部,可以访问所有实例属性。 3.如果外部需要访问私有属性,可以通过方法调用p1.get_name() 获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。
    查看全部
  • 访问类属性一定需要通过"类名.属性"这种方式(访问方式其中的一种)
    查看全部
  • try 的作用是捕获错误,并在捕获到指定错误时执行 except 语句。 try: from cStringIO import StringIO except ImportError: from StringIO import StringIO
    查看全部
  • 1.当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。 2.不要在实例上修改类属性,它实际上并没有修改类属性,而是给实例绑定了一个实例属性。
    查看全部
  • 6、自定义排序函数 对list进行排序,传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。 >>>sorted([36, 5, 12, 9, 21]) [5, 9, 12, 21, 36] 倒序排序:只需要编写一个reversed_cmp函数 def reversed_cmp(x, y): if x > y: return -1 if x < y: return 1 return 0 >>> sorted([36, 5, 12, 9, 21], reversed_cmp) [36, 21, 12, 9, 5] sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较: >>> sorted(['bob', 'about', 'Zoo', 'Credit']) ['Credit', 'Zoo', 'about', 'bob'] 'Zoo'排在'about'之前是因为'Z'的ASCII码比'a'小。
    查看全部
  • Python的 decorator 本质上就是一个高阶函数,它接收一个函数作为参数,然后,返回一个新函数。 使用 decorator 用Python提供的 @ 语法,这样可以避免手动编写 f = decorate(f) 这样的代码。 要让 @log 自适应任何参数定义的函数,可以利用Python的 *args 和 **kw,保证任意个数的参数总是能正常调用
    查看全部
  • 继承时记得调用super().__init__初始化父类的参数
    查看全部
  • has关系代表属性
    查看全部
  • 子类和父类是is关系
    查看全部
  • 在Python中,对匿名函数提供了有限支持。还是以map()函数为例,计算 f(x)=x2 时,除了定义一个f(x)的函数外,还可以直接传入匿名函数 关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。
    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)。 闭包的特点是返回的函数还引用了外层函数的局部变量,所以,要正确使用闭包,就要确保引用的局部变量在函数返回后不能变。
    查看全部
    0 采集 收起 来源:python中闭包

    2017-02-24

  • python之sorted()自定义排序函数: python内置的高价函数,传入一个 x<y,比较函数返回-1,x>y,返回1,x=y,返回0
    查看全部
  • 1.匿名函数:关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。 匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。 map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81]
    查看全部
  • python中定义类方法 和属性类似,方法也分实例方法和类方法。 在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。 要在class中定义类方法,需要这么写: class Person(object): count = 0 @classmethod def how_many(cls): return cls.count def __init__(self, name): self.name = name Person.count = Person.count + 1 print Person.how_many() p1 = Person('Bob') print Person.how_many() 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。 任务 如果将类属性 count 改为私有属性__count,则外部无法读取__score,但可以通过一个类方法获取,请编写类方法获得__count值。 ?不会了怎么办 注意类方法需要添加 @classmethod 参考代码: class Person(object): __count = 0 @classmethod def how_many(cls): return cls.__count def __init__(self, name): self.name = name Person.__count = Person.__count + 1 print Person.how_many() p1 = Person('Bob') print Person.how_many()
    查看全部

举报

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

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