快捷搜索:  汽车  科技

python编程面向对象知识点解析(无门槛快速学编程)

python编程面向对象知识点解析(无门槛快速学编程)各位小萌新可能会不理解部分代码细节。没关系,各位先对“继承”这个类的概念有个直观感受,后续我们继续讲解。#!/usr/bin/python # -*- coding: UTF-8 -*- ​ class Dog(object): def __init__(self name color): self.name = name self.color = color def sit(self): print(self.name "坐下了") def smile(self): print(self.name "笑了") #SuperDog继承于Dog class SuperDog(Dog): def __init__(self name color hairstyle): #先初始化基类Dog的部分 super(SuperDog self).__init

【Python小短课 24】三探面向对象

来说下面向对象其中“继承”的概念。

如之前所说,类可以理解为一种模板,那么继承可以理解为一种提升、扩展模板能力的技术。

代码:

#!/usr/bin/python # -*- coding: UTF-8 -*- ​ class Dog: def __init__(self name color): self.name = name self.color = color def sit(self): print(self.name "坐下了") def smile(self): print(self.name "笑了") ​ oMyDog = Dog("托比" "白色") oMyDog.sit() oMyDog.smile() ​ oHerDog = Dog("莱斯" "黑色") oHerDog.sit() oHerDog.smile()

如代码所示,Dog类作为生产狗的模板,规定了通用的属性name(名字)color(颜色),规定了通用的方法sit(坐下)smile(笑)。

我们拿着这个Dog类生产了千千万万的狗,突然有一天总结发现,狗也是可以分类的,不同类别的狗拥有共性,也有自己的特性。譬如我们发现有一类SuperDog(超级狗)不仅有name(名字)color(颜色),也有hairstyle(发型)属性;不仅有sit(坐下)smile(笑)方法,也有shoot(射击)方法。

所以,我们基于Dog类,定义了我们的SuperDog类:

#!/usr/bin/python # -*- coding: UTF-8 -*- ​ class Dog(object): def __init__(self name color): self.name = name self.color = color def sit(self): print(self.name "坐下了") def smile(self): print(self.name "笑了") #SuperDog继承于Dog class SuperDog(Dog): def __init__(self name color hairstyle): #先初始化基类Dog的部分 super(SuperDog self).__init__(name color) #再初始化自己的部分 self.hairstyle = hairstyle def shoot(self): print(self.name "射击了") ​ oMyDog = Dog("托比" "白色") oMyDog.sit() oMyDog.smile() ​ oHerDog = Dog("莱斯" "黑色") oHerDog.sit() oHerDog.smile() ​ oYourDog = SuperDog("杰克" "红色" "凌乱") oYourDog.sit() oYourDog.smile() oYourDog.shoot() ​

可以说SuperDog类继承了Dog类,然后我们拿SuperDog类这个超级狗的模板生产了oYourDog这个对象,这个对象除了拥有常规狗的属性和方法,也拥有自己的属性hairstyle(凌乱的发型),也拥有shoot(射击)的能力。

各位小萌新可能会不理解部分代码细节。没关系,各位先对“继承”这个类的概念有个直观感受,后续我们继续讲解。

python编程面向对象知识点解析(无门槛快速学编程)(1)

猜您喜欢: