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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 由于 f 可以被调用,所以,f 被称为可调用对象。而所有的函数都是可调用对象。 一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。
    查看全部
    0 采集 收起 来源:python中 __call__

    2018-02-08

  • 要限制添加的属性,例如,Student类只允许添加 name、gender和score 这3个属性,就可以利用Python的一个特殊的__slots__来实现: __slots__ = (tuple)('A', 'B', 'C') __slots__的目的是限制当前类所能拥有的属性,如果不需要添加任意动态的属性,使用__slots__也能节省内存
    查看全部
    0 采集 收起 来源:python中 __slots__

    2018-02-08

  • Python支持高阶函数,在函数式编程中我们介绍了装饰器函数,可以用装饰器函数把 get/set 方法“装饰”成属性调用: @property #score(self)是get方法,用@property装饰 def score(self): return self.__score @score.setter #score(self, score)是set方法,用@score.setter装饰 def score(self, score): if score < 0 or score > 100: raise ValueError('invalid score') self.__score = score
    查看全部
    0 采集 收起 来源:python中 @property

    2018-03-22

  • 做类型转换时,需要改写__int__(整型)、__float__(浮点型)方法来实现转换
    查看全部
  • 特殊方法的数学运算 通过改写 -> "加"__add__(),"减" __sub__(),"乘" __mul__(), "除"__div__()可以对自定义类的实例进行数学运算 **一个利用递归求最大公倍数的方法** def gcd(a, b): if b == 0: return a return gcd(b, a % b)
    查看全部
  • 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数 **要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。**
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-02-08

  • 对一组自定义类的实例排序时,就必须提供自己的特殊方法 __cmp__()
    查看全部
    1 采集 收起 来源:python中 __cmp__

    2018-02-08

  • __str__() & __repr__() ##改写上面两个特殊方法可以输出自定义的内容。Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。
    查看全部
  • 要定义关键字参数,使用 **kw; 除了可以直接使用self.name = 'xxx'设置一个属性外,还可以通过 setattr(self, 'name', 'xxx') 设置属性。 参考代码: class Person(object): def __init__(self, name, gender, birth, **kw): self.name = name self.gender = gender self.birth = birth for k, v in kw.iteritems(): setattr(self, k, v) xiaoming = Person('Xiao Ming', 'Male', '1990-1-1', job='Student') print xiaoming.name print xiaoming.job
    查看全部
  • 高阶函数:能够 接受函数作为参数的函数。
    查看全部
  • 变量可以指向函数。
    查看全部
  • 函数式编程
    查看全部
  • note reduce函数的应用
    查看全部
  • 类的特殊方法小记: 1. 引子:Python如何把任意变量变成str? 任何数据类型的示例都有一个特殊方法 -> __str__() 如果给自定义类加上特殊方法,即可以自定义打印需要的字符串 2. 特殊方法的特点: a. 特殊方法定义在class中 b. 不需要直接调用 c. Python的某些函数或操作符会调用对应的特殊方法 3. 正确实现特殊方法: a. 只需要编写用到的特殊方法 b. 有关联性的特殊方法都必须实现
    查看全部
  • 类的继承小记: a. 继承的优点: 1. 复用已有的代码 2. 自动拥有现有的类的所有功能 3. 只需要编写缺少的新功能(没有改写功能了吗……) b. 继承类的编写 class ExtendClass(ParentClass): def __init__(self, para): super(ExtendClass, self).__init__(para) #继承类的构造方法必须含有此语句,意在继承父类的全部方法与属性特点 c. 在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法 & 在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。 d. 动态语言和静态语言(例如Java)最大的差别之一:动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。 **Python的动态特性**json.load()并不一定要从一个File对象读取内容。任何对象,只要有read()方法,就称为File-like Object,都可以传给json.load()。 e. 多重继承: class D(B, C): def __init__(self, a): super(D, self).__init__(a) print 'init D...' 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。 f. 类中对对象的处理函数 1. isinstance() 判断它是否是某种类型的实例 2. type() 获取变量的类型,它返回一个 Type 对象: 3. dir() 函数获取变量的所有属性 4. 已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数
    查看全部

举报

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

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