Python面向对象
来自CloudWiki
面向对象概念
一个典型的python类:
class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score)) std1 = Student('小明', 98) std2 = Student('小红', 81) std1.print_score() std2.print_score()
__init__:初始化方法(注意这里有两个下划线)
__init__方法的第一个参数永远是self,表示创建的对象本身。这个参数使用时不用传递。
类的继承
class Person(object): def __init__(self, name): self.name = name # 名字 def talk(self): # 父类的公有方法 print('%s 正在讲话....' % (self.name)) class Athletes(Person): def swimming(self): print('%s 正在游泳....' % (self.name)) per = Athletes('小明') per.swimming() #输出: 小明 正在游泳.... per.talk() #输出: 小明 正在讲话....
Mixin多重继承
Mixin可以临时将多个类的某些功能组装在一起。
使用Mixin 可以在不修改任何源代码的情况下,对已有类进行扩展。
class Vehicle(object): #定义车辆类 def __init__(self, id): self.id = id def drive(self): print('牌号%s汽车正在行驶中...' % (self.id)) class ShowMixin(object): #定义车辆作为演示道具的功能 def show(self): print('牌号%s汽车正在表演中...' % (self.id)) class ShowVehicle(Vehicle, ShowMixin): pass car = ShowVehicle('9999') car.show() #输出: 牌号9999汽车正在表演中... car.drive() #输出: 牌号9999汽车正在行驶中...
第二个类起名为ShowMixin,表示这是一个Mixin类,是作为功能添加到子类中的。