为了账号安全,请及时绑定邮箱和手机立即绑定
  • 创建类:

    class Animal():pass
    dog = Animal()
    cat = Animal()

    print(dog)
    print(cat)
    print(dog == cat)

    pass用于占位

    <__main__.Animal instance at 0x7f12ce9a0050>

    dog 是类动物(__main__.Animal)的实例(object)存放在地址(at 0x7f12ce9a0050)

    查看全部
  • 多态方法实际调用的时候,会首先查找自身的定义,如果自身有定义,则优先使用自己定义的函数;如果没有定义,则顺着继承链向上找

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

    2021-11-19

  • 1. class Student()定义的时候,需要在括号内写明继承的类Person

    2. 在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性

    查看全部
    0 采集 收起 来源:Python继承类

    2021-11-19

  • 初始化实例时,如果调用类的属性,必须用类名.属性

    查看全部
  • 多态

    从定义上来讲,Student和Teacher都拥有来自父类Person继承的who()方法,以及自己定义的who()方法。但是在实际调用的时候,会首先查找自身的定义,如果自身有定义,则优先使用自己定义的函数;如果没有定义,则顺着继承链向上找

    多重继承

    • 在多重继承里,A虽然被继承了两次,但是__init__()的方法只调用一次。

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

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

    2021-11-19

    • 这说明在一条继承链上,一个实例可以看成它本身的类型,也可以看成它父类的类型。

    • isinstance也可以用于Python自有数据类型的判断。

    • 通过函数isinstance()可以判断一个变量的类型。

    查看全部
    0 采集 收起 来源:Python判断类型

    2021-11-19

    • class Student()定义的时候,需要在括号内写明继承的类Person

    • 在__init__()方法,需要调用super(Student, self).__init__(name, gender),来初始化从父类继承过来的属性

    查看全部
    0 采集 收起 来源:Python继承类

    2021-11-19

  • is才是继承关系

    查看全部
  • python定义类方法

    • 类方法和实例方法是不同的

    1. 类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法

    2. 类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。

    因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。

    查看全部
    • 注意,在外部调用实例方法时,是不需要显式传递self参数的。
      另外,通过定义实例方法来操作私有属性的这种方法是推荐的,这种数据封装的形式除了能保护内部数据一致性外,还可以简化外部调用的难度。
      当然,实例方法并不仅仅是为私有属性服务的,我们可以把和类的实例有关的操作都抽象成实例方法,比如:打印实例的详细信息等等。

    • 在上面的定义,name是实例的私有属性,从外部是无法访问的,而get_name(self) 就是一个实例方法,在实例方法里面是可以操作私有属性的,注意,它的第一个参数是self。
      另外,__init__(self, name)其实也可看做是一个特殊的实例方法。
      通过定义get_name(self)方法,在外部就可以通过这个方法访问私有属性了

    查看全部
    • 并不是所有的属性都可以被外部访问的,这种不能被外部访问的属性称为私有属性。私有属性是以双下划线'__'开头的属性

    • 在外部访问私有属性将会抛出异常,提示没有这个属性。
      虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。私有属性是为了保护类或实例属性不被外部污染而设计的

    查看全部
    • 在类属性和实例属性同时存在的情况下,实例属性的优先级是要高于类属性的,在操作实例的时候,优先是操作实例的属性。
      另外,当实例没有和类同名的时候,通过实例对象,依然可以访问到类属性。

    • 因此,需要特别注意,尽量不要通过实例来修改类属性,否则很容易引发意想不到的错误。

    • 把count改为私有__count,这样实例变量在外部无法修改__count

    查看全部
  • 在定义 Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都统一加上以下属性:

    查看全部
  • type()获取变量的类型

    dir()获取变量的所有属性,返回的是字符串列表

    getattr()获取对象的属性

    setattr()设置新的对象属性

    查看全部
  • 私有属性是以双下划线开头的属性

    查看全部

举报

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

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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