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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • Python 定义了__str__()和__repr__()两种方法,__str__()用于显示给用户,而__repr__()用于显示给开发人员。 有一个偷懒的定义__repr__的方法: class Person(object): def __init__(self, name, gender): self.name = name self.gender = gender def __str__(self): return '(Person: %s, %s)' % (self.name, self.gender) __repr__ = __str__
    查看全部
  • 333.正确实现特殊方法
    查看全部
  • 222.
    查看全部
  • 1.__str__特殊方法
    查看全部
  • 1.首先可以用 type() 函数获取变量的类型,它返回一个 Type 对象 2.其次,可以用 dir() 函数获取变量的所有属性: >>> dir(123) # 整数也有很多属性... ['__abs__', '__add__', '__and__', '__class__', '__cmp__', ...] 3.如果已知一个属性名称,要获取或者设置对象的属性,就需要用 getattr() 和 setattr( )函数了 >>> getattr(s, 'name') # 获取name属性 'Bob' >>> setattr(s, 'name', 'Adam') # 设置新的name属性 getattr(s, 'age', 20) # 获取age属性,如果属性不存在,就返回默认值20:
    查看全部
  • 1.StringIO是纯Python代码编写的,而cStringIO部分函数是C写的,因此cStringIO运行速度更快。 2.利用ImportError错误,我们经常在Python中动态导入模块: try : from cStringIo import StringIO except ImportError: from StringIO import StringIO 上述代码先尝试从CStringIO导入,如果失败了(比如cStringIO没有被安装),再尝试从StringIO导入。这样,如果cStringIO模块存在,则我们将获得更快的运行速度,如果cStringIO不存在,则顶多代码运行速度会变慢,但不会影响代码的正常执行。 try的作用是捕获错误,并且在捕获到指定错误时执行except语句。
    查看全部
  • 同时继承自 B 和 C,也就是 D 拥有了 A、B、C 的全部功能。多重继承通过 super()调用__init__()方法时,A 虽然被继承了两次,但__init__()只调用一次: 正确的写法: class C(A, B) def __init__(self, a, b): A.__init__(self, a) B.__init__(self, b) 建议养成习惯,不要使用super()这个函数,即便是单继承,也使用上面的方式
    查看全部
  • 注意:map()函数不改变原有的 list,而是返回一个新的 list。 利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。
    查看全部
  • map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回。
    查看全部
  • 总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。 动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用
    查看全部
    0 采集 收起 来源:python中多态

    2017-08-23

  • 1.通过导入模块,可以访问模块中所定义的所有公开的函数、变量和类。 2.import math //导入math模块 form math import pow,sin,log //只导入模块的某几个函数 3.如果遇到名字冲突怎么办? import math,logging print math.log(10) //调用的是math的log函数 print logging.log(10,'somthing') //调用的是logging的log函数 4.使用from...import导入log函数:用as起别名 from math import log from logging import log as logger print log(10) print logger(10,'import from logging')
    查看全部
  • class Student(Person): def __init__(self, name, gender, score): super(Student, self).__init__(name, gender) self.score = score 一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。 函数super(Student, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。
    查看全部
  • filter是一个高阶函数,filter()接受一个f和一个List,通过f判断List中每个元素的正确与否,而后将所有正确值返回一个新的List。 s.strip(rm)是删除s字符串中开头和结尾处的rm序列的字符。当rm为空时,默认删除空白符(包括'\n','\r''\t''')
    查看全部
  • 对 int、str 等内置数据类型排序时,Python的 sorted() 按照默认的 *比较函数 cmp 排序,但是,如果对一组 Student 类的实例排序时,就必须提供我们自己的特殊方法 __cmp__()
    查看全部
    0 采集 收起 来源:python中 __cmp__

    2017-08-22

  • 在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 通过标记一个 @classmethod,该方法将绑定到 Person 类上,而非类的实例。类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.count 实际上相当于 Person.count。
    查看全部

举报

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

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