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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Rational()转化为int: r = Rational(12,5) n = int(r) Rational()转化为float: def __float__(self): return self.p * 1.0 / self.q print float(Rational(7,2))
    查看全部
  • 要表示有理数,可以用一个Rational类来表示
    查看全部
  • 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。 要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。
    查看全部
    0 采集 收起 来源:python中 __len__

    2018-02-18

  • __cmp__用实例自身self和传入的实例 s 进行比较,如果 self 应该排在前面,就返回 -1,如果 s 应该排在前面,就返回1,如果两者相当,返回 0。
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2018-02-18

  • 如果要把一个类的实例变成str,就需要实现特殊方法__str__() Python定义了__str__(),__repr__()两种方法,__str()用于显示给用户,而__repr__()用于显示给开发人员。
    查看全部
  • @property 装饰器:把方法变成属性。
    查看全部
    0 采集 收起 来源:python中 @property

    2018-02-18

  • 类的特殊方法小记: 1. 引子:Python如何把任意变量变成str? 任何数据类型的示例都有一个特殊方法 -> __str__() 如果给自定义类加上特殊方法,即可以自定义打印需要的字符串 2. 特殊方法的特点: a. 特殊方法定义在class中 b. 不需要直接调用 c. Python的某些函数或操作符会调用对应的特殊方法 3. 正确实现特殊方法: a. 只需要编写用到的特殊方法 b. 有关联性的特殊方法都必须实现
    查看全部
  • 用isinstance()判断变量是否时某种类型的实例,用type()函数获取变量的类型,返回一个Type对象,用dir()函数获取变量的所有属性。包括特殊属性。 去掉‘__xxx__'这类的特殊属性,用filter()函数。 如果已知一个属性名称,要获取或者设置对象的属性,就需要用getattr()和setattr()函数了。 getattr(s, 'name') # 获取name属性 'Bob' setattr(s, 'name', 'Adam') # 设置新的name属性 getattr(s, 'age') # 获取age属性,但是属性不存在,报错 getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20: 20
    查看全部
  • Pyhton中有普通继承方式和super继承方式,普通继承: class D(B,C): def __init__(self,a): B.__init__(self,a) C.__init__(self,a) 如果修改了父类名称子类中涉及多处修改,而且在多态继承中需要重复写,因此,python引入了super()机制: class D(B,C): def __init__(self,a): super(D,self).__init__(a) 多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。 class D(B, C): def __init__(self, a): super(D, self).__init__(a) print 'init D...' 像这样,D 同时继承自 B 和 C,也就是 D 拥有了 A、B、C 的全部功能。多重继承通过 super()调用__init__()方法时,A 虽然被继承了两次,但__init__()只调用一次: 参考写法: 父类名1.__init__(self,被继承的父类1方法) 父类名2.__init__(self,被继承的父类2方法)
    查看全部
  • import math def is_sqr(x): if math.sqrt(x) = int (math.sqrt(x)) return x print filter(is_sqr, range(1,101))
    查看全部
  • 内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)
    查看全部
    0 采集 收起 来源:python中闭包

    2018-02-18

  • reduce()函数传入一个函数和一个list时,对list中的数据两两进行函数运算处理!
    查看全部
  • ,方法调用将作用在 x 的实际类型上。s 是Student类型,它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。 这是动态语言和静态语言(例如Java)最大的差别之一。动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。 由于Python是动态语言,所以,传递给函数 who_am_i(x)的参数 x 不一定是 Person 或 Person 的子类型。任何数据类型的实例都可以,只要它有一个whoAmI()的方法即可:
    查看全部
    0 采集 收起 来源:python中多态

    2018-02-17

  • isinstance()可以判断一个变量的类型,既可以用在Python内置的数据类型如str,list,dict,也可以用在我们自定义的类,它们本质上都是数据类型。 在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。 一个实例可以看成它本身的类型,也可以看成它父类的类型。
    查看全部
  • class Student(Person) def __init__(self,name,gender,score) super(Student,self).__init__(name,gender) self.score = score 定义新类时,需把额外的属性加上,一定要用super(Student,self).__init__(name,gender)去初始化父类,否则,继承自父类的子类将没有name和gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)
    查看全部

举报

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

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