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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • __str__ __repr__ def __str__(self): return '(Person :%s, %s)' %(self.name, self.age) __repr__ = __str__
    查看全部
  • 一定要用 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。 因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
    查看全部
  • 在实例方法内部,可以访问所有实例属性,这样,如果外部需要访问私有属性,可以通过方法调用获得,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。
    查看全部
  • 原因是 p1.address = 'China'并没有改变 Person 的 address,而是给 p1这个实例绑定了实例属性address ,对p1来说,它有一个实例属性address(值是'China'),而它所属的类Person也有一个类属性address,所以: 访问 p1.address 时,优先查找实例属性,返回'China'。 访问 p2.address 时,p2没有实例属性address,但是有类属性address,因此返回'Earth'。 可见,当实例属性和类属性重名时,实例属性优先级高,它将屏蔽掉对类属性的访问。
    查看全部
  • 因为类属性只有一份,所以,当Person类的address改变时,所有实例访问到的类属性都改变了。
    查看全部
  • 继承类 super(subclass, self).__init__(args)
    查看全部
  • class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender class Student(Person): def __init__(self, name, gender, school, score): super(Student, self).__init__(name, gender) self.school = school self.score = score
    查看全部
  • @classmethod 类方法与实例方法的区别 类方法,标记@classmethod 类方法的第一份参数将传入类本身, def how_many(cls): return cls.count
    查看全部
  • 将方法动态的添加到实例中: import types p1.get_grade = types.MethodType(fn_get_grade, p1, Person)
    查看全部
  • Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问。 特殊属性:以"__xxx__"定义的属性在Python的类中被称为特殊属性
    查看全部
  • 类属性定义一个关键字参数 class Person(object): def __init__(self, name, **kw): self.name = name for k, v in kw.iteritems(): setattr(self, k, v)
    查看全部
  • 当新版本的一个特性与旧版本不兼容时,该特性将会在旧版本中添加到__future__中,以便旧的代码能在旧版本中测试新特性。 Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数 >>> 10 / 3 3.3333333333333335 >>> 10 // 3 3 Python 2.7中引入3.x的除法规则,导入__future__的division: >>> from __future__ import division >>> print 10 / 3 3.3333333333333335
    查看全部
  • 如果导入的模块不存在,Python解释器会报 ImportError 错误: StringIO 和 cStringIO 都提供了StringIO这个功能。cStringIO效率更快 try: from cStringIO import string except ImportError: from StringIO import string
    查看全部
  • import functools sorted_ignore_case = functools.partial(sorted, cmp=lambda s1,s2:cmp(s1.upper(), s2.upper())) print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit']) #cmp(s1,s2)
    查看全部
    0 采集 收起 来源:python中偏函数

    2016-12-17

举报

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

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