类和对象
使用的是python3.x版本
Python也像java一样,使用class来声明类
1 | class Person: |
类中也可以声明函数,但是与普通的函数不同,需要在参数列表的第一个增加一个self变量。self传入的是该类的对象实例(这个是python自动传入的,我们在调用方法时不需要传入,每个与类相关联的方法调用都自动传递实参self)
类中的函数称为方法
1 | class Person: |
__init__
方法
python中的构造方法与java不同,不是使用类的名字,而是使用__init__
方法
1 | class Person: |
类变量和对象变量
java中存在类变量和实例变量,同样的,python中也存在这两种变量。使用类名.变量名就可以使用其类变量,使用self.变量名可以使用其对象变量
1 | class Employee: |
输出结果
1 | empCount 2 |
继承
继承作为面向对象中不可或缺的一部分,可以有效的实现代码的重用。python肯定也是有继承的,其语法是 子类(父类)
1 | class Parent: |
可以发现,好像python的继承和java不太一样,子类实例化的时候不会调用父类的构造函数。这是因为子类重写了其父类的构造器函数,就不会调用父类构造函数了。如果没有重写的话,就会调用父类的构造函数。
如果重写子类构造函数时,想要继承父类的构造函数,需要显式的来调用,使用super(子类,self).__init__(参数)
来调用,也可以使用父类.__init__(self,参数)
来调用
1 | class Child(Parent): |
python不是单继承,可以继承多个父类,多个父类之间使用逗号隔开 子类(父类1,父类2)