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

python进阶

廖雪峰 移动开发工程师
难度中级
时长 3小时33分
  • 问题提出:如果我们print 一个实例,会得到一个地址。那么我们如何把任意变量变成str?

    就要用到实例中的方法。比如__str__()

    查看全部
  • >>> getattr(s, 'age', 20)  # 获取age属性,如果属性不存在,就返回默认值20:20

    是指如果属性不存在,getattr()会创造属性并给属性赋值吗?

    查看全部
  • 如何去掉`__xxx__`这类的特殊属性,只保留我们自己定义的属性?

    filter()函数是 Python 内置的另一个有用的高阶函数,filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list

    查看全部
  • #函数

    type() 变量的类型

    dir()   变量的所有属性

    getattr()和setattr() 获取单个属性 或者设置新的单个属性

    filter()

    查看全部
  • 这个装饰器可以起任何名字,只要定义的名字(这里是performance)和调用的名字(@performance)一样。

    查看全部
  • #获取对象信息 (什么叫作对象?)

    isinstance(),只是通过简单的是否去判断类型,信息量很少。

    查看全部
  • 强调:多重继承的目的是从两种继承树中分别选择并继承出子类,以便组合功能使用。

    很好的例子:

    https://img1.sycdn.imooc.com//5c495ea30001507c04690418.jpg

    查看全部
  • 像这样,D 同时继承自 B 和 C,也就是 D 拥有了 A、B、C 的全部功能。多重继承通过 super()调用__init__()方法时,A 虽然被继承了两次,但__init__()只调用一次:


    强调只调用一次有什么特殊含义吗?


    查看全部
  • #json.load() 

    好酷,是指可以将类列表或字典形式的字符串转化成真正的列表,可是输出时,为什么,列表内有u'?

    #上面的l1和d1都是字符串,但是他们的外形和list和dict一样,我们就可以通过反序列化把这2个字符串转换成list和dict,这里如果
    #外形不是list或者dict的形状,则不会转换成功的,这里必须要注意,字符串的外面的引号必须是“单引号”,内部必须是双引号,如果不是这样,json模块会报错的

    https://www.cnblogs.com/bainianminguo/p/6676067.html


    查看全部
    0 采集 收起 来源:python中多态

    2019-01-24

  • #自己解决问题

    函数会返回File 对象,对象中有一个方法。

    由于Python的动态特性,json.load()并不一定从File对象读取内容,任何对象,只要有read()方法,就成为File-like Object,都可以传给json.load().

    请尝试编写一个File-like Object,把一个字符串 r'["Tim", "Bob", "Alice"]'包装成 File-like Object 并由 json.load() 解析。

    就是要求创建一个类,它可以接收字符串,并且要包含方法,即函数read(),即称为包装。

    疑惑的是

    return r'["Tim","Bob","Alice"]'

    read()只是读出文件内容的意思,所以直接返回字符串即可。

    查看全部
    0 采集 收起 来源:python中多态

    2019-01-24

  • #为什么会有类这个概念?

    除了方便归类,动态编辑语言应该也是一个重要的因素,动态语言调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。(kiss:keep is simple )

    查看全部
    0 采集 收起 来源:python中多态

    2019-01-24

  •  'I am a Person, my name is %s' % self.name

    #有点像C中打印语句中的使用方法。

    查看全部
    0 采集 收起 来源:python中多态

    2019-01-24

  • 1、什么是多态?

    在类里面用同一个函数命名,接受类里面定义的参数(名字当然可以一样,因为名字本来就可以作为一个属性名而一样。)


    更专业语言:这种行为称为多态。也就是说,方法调用将作用在 x 的实际类型上。s 是Student类型,它实际上拥有自己的 whoAmI()方法以及从 Person继承的 whoAmI方法,但调用 s.whoAmI()总是先查找它自身的定义,如果没有定义,则顺着继承链向上查找,直到在某个父类中找到为止。

    查看全部
    0 采集 收起 来源:python中多态

    2019-01-24

  • #函数isinstance()    (为什么要在这一章提到?)

    答:因为类型不仅仅是我们常见的数字,字符,列表等,在Python中还自定义了各种类,比如我们举例用的‘人’,包含学生和老师,前者是父类后者是子类,可以用isinstance()进行判断;

    还解决了上一节 is问题。

    查看全部
  • 强调:

    1、一定要用 super(Student, self).__init__(name, gender) 去初始化父类,否则,继承自 Person 的 Student 将没有 name 和 gender。

    2、函数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强大的定制类
友情提示:

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