为了账号安全,请及时绑定邮箱和手机立即绑定
    • 多态

      在实际调用的时候,会首先查找自身的定义,如果自身有定义,则优先使用自己定义的函数;如果没有定义,则顺着继承链向上找。

    • 多重继承

      Python允许从多个父类继承。多重继承和单继承没有特别大的差异,只是在括号内加入多个需要继承的类的名字即可。

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

    2021-05-11

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

    • 在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。

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

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

    2021-05-11

  • class Student(Person):
       def __init__(self, name, gender, score):
           super(Student, self).__init__(name, gender)
           self.score = score

    student = Student('Alice', 'girl', 100)

    print(student.name) # ==> Alice
    print(student.gender) # ==> girl
    print(student.score) # ==> 100

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

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

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

    2021-05-11

    • 为了操作实例对象的私有属性,定义了实例方法。

    • 操作类的私有属性,则应该定义类的方法。

      class Animal(object):
         __localtion = 'Asia'
         def __init__(self, name, age):
             self.name = name
             self.age = age

         @classmethod
         def set_localtion(cls, localtion):
             cls.__localtion = localtion

         @classmethod
         def get_localtion(cls):
             return cls.__localtion

      print(Animal.get_localtion()) # ==> Asia
      Animal.set_localtion('Afica')
      print(Animal.get_localtion()) # ==> Africa


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

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

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

    查看全部
  • 需要在外部访问私有属性时:

    • 定义实例方法

      实例的方法指的就是在类中定义的函数,实例方法的第一个参数永远都是self,self是一个引用,指向调用该方法的实例对象本身,除此以外,其他参数和普通函数是完全一样的。

      class Person(object):
             def __init__(self, name):
                    self.__name = name
             def get_name(self):
                    return self.__name

      p = Person('Alice')
      print(p.get_name()) # ==> Alice

      在外部调用实例方法时,是不需要显式传递self参数的。

    • 可以把和类的实例有关的操作都抽象成实例方法。

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

    不能被外部访问的属性称为私有属性。

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

      不能被外部访问的属性称为私有属性。

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

    查看全部
    • 在类属性和实例属性同时存在的情况下,实例属性的优先级是要高于类属性的,在操作实例的时候,优先是操作实例属性。

    • 当实例没有和类同名的时候,通过实例对象,依然可以访问到类属性。

      通过实例是无法修改类的属性的,事实上,通过实例方法修改类属性,只是给实例绑定了一个对应的实例属性。

    查看全部
  • seek()方法,可以移动文件的游标位置,它接受一个参数,表示文件的位置,0:文件首部,1:当前位置,2:文件尾部,通过seek()可以把文件游标移动到文件首部但不删除文件的内容。

    f =

     open('test.txt', 'a+')
    content = f.readlines

    ()
    print(content) # ==> []
    f.seek(0)
    content = f.readlines()
    print(content) # ==> ['Hello World\n', 'Hello Python\n', 'Hello Imooc\n']

    查看全部
  • class Animal(object):
       count = 0
       def __init__(self, name, age):
           self.name = name
           self.age = age
           Animal.count += 1


    dog = Animal('wangwang', 1)
    print(Animal.count)
    cat = Animal('mimi', 3)
    print(Animal.count)
    pig = Animal('panpan', 1)
    print(Animal.count)
    查看全部
    0 采集 收起 来源:Python类属性

    2021-05-03

    • 类属性

      class Animal(object):
         location = 'Asia'
         def __init__(self, name, age):
             self.name = name
             self.age = age
      location就是属于Animal这个类的类属性。

    • 通过Animal()实例化的所有对象,都可以访问到location,并且得到唯一的结果。

      dog = Animal('wangwang', 1)
      cat = Animal('mimi', 3)
      print(dog.location) # ==> Asia
      print(cat.location) # ==> Asia
      # 类属性,也可以通过类名直接访问
      print(Animal.location) # ==> Asia

    • 类属性也是可以动态添加和修改的,需要注意的是,因为类属性只有一份,所以改变了,所有实例可以访问到的类属性都会变更:

      Animal.location = 'Africa'
      print(cat.location) # ==>Africa
      print(dog.location) # ==>Africa

    查看全部
    0 采集 收起 来源:Python类属性

    2021-05-03

    • class Person(object):
            def __init__(self, name, sex, age):
                    self.name = name
                    self.sex = sex
                    self.age = age

      __init__() 方法的第一个参数必须是 self,后续参数则可以自由指定,和定义函数没有任何区别。

    • 定义类后,就可以相应的实例化对象了,需要注意的是,在实例化的时候,需要提供除self以外的所有参数。

    查看全部
    • 赋予实例这些属性

      xiaohong.name = 'xiaohong'
      xiaohong.sex = 'girl'
      xiaohong.age = 13
      print(xiaohong.name)
      print(xiaohong.sex)
      print(xiaohong.age)

    • 这些属性也可以和普通变量一样进行运算

      比如xiaohong长大了一岁:xiaohong.age = xiaohong.age + 1

    查看全部
    • 在Python中,通过class关键字定义一个类,按照 Python 的编程习惯,类名以大写字母开头

      class Person:  pass
      class Person(): pass
      class Person(object):  pass

    • 定义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。创建实例使用类名+()

      class Person(object):  pass

      xiaohong = Person()

      xiaoming = Person()

    查看全部

举报

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

微信扫码,参与3人拼团

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

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