【Python】面向对象:类与继承简单示例
Python 面向对象
Python 是一门面向对象的设计语言,与此对应的就是面向过程编程与函数式编程
面向对象的一个优点就是更好的增强代码的重用性。
面向过程编程可以简单的理解为:重点在步骤,将一个任务完成所需要的所有步骤罗列出来
面向对象则可以理解为:重点在对象,打个比方的话就是在人,完成一项任务需要哪些人,这些人再去负责做具体的事情,将所有人组合在一起就完成了这个任务。
我们通过封装步骤为方法,封装方法为对象,来执行任务。真实世界中的事物从来都不是单独的,每个事物都有自己的类别,而函数是真实世界的映射,对于同一类的事物,同一类事物具有某些相同的特征,我们无需每次对同一类的事物创建相同的特征,而只需要创建一个大类,在这个大类中将某些共同属性封装在一起,然后通过继承的方式去使用这些属性或者方法,对于一些特殊属性特殊方法,我们只需单独创建它们即可——一切重复性的东西都没有必要存在两份。
下面这个例子定义了一个动物的大类,它具有一些共同属性和方法,以及两个继承它的猫类和狗类,它们具有各自特殊的方法。
1 class Animal(object): # 定义父类animal 2 3 def __init__(self,name,sound): # 初始化属性 name sound 4 5 self.name = name 6 self.sound = sound 7 self.talk() # 一实例化即调用talk()方法 8 9 def talk(self): # 定义父类方法,用于打招呼 10 print("hello,i am %s,%s" % (self.name,self.sound)) 11 12 class Dog(Animal): # 继承父类animal 13 14 def jump(self): # 增加子类新方法 15 print("i love jumping!") 16 17 class Cat(Animal): # 继承父类animal 18 19 def sleep(self): # 增加子类新方法 20 print("i love sleeping") 21 22 23 catt = Cat("cat","miao~miao~miao") # 实例化cat类,得到catt对象 24 catt.sleep() # 调用对象方法 25 26 dogg = Dog("dog","wang~wang~wang") 27 dogg.jump()
执行结果:
hello,i am cat,miao~miao~miao
i love sleeping
hello,i am dog,wang~wang~wang
i love jumping!