#!usr/bin/python3
# -*- coding:utf8 -*-
## Animal is-a object (yea, sort of confusing) look at the extra credit
class Animal(object): # 定义动物
pass
## ? is-a
class Dog(Animal): # 定义狗,隶属于动物
def __init__(self,name):
#"" has-a
self.name = name
## ? is-a
class Cat(Animal): #定义猫,隶属于动物
def __init__(self,name):
# has-a
self.name = name
## is-a
class Person(object): # 定义人
def __init__(self,name): # 人具有名字
# has-a
self.name = name
## Person has-a pet of some kind
self.pet = None # 宠物不是必选的,可以赋予宠物。调用的时候人只有一属性“名字”
## is-a
class Employee(Person): # 定义雇员,隶属于人
def __init__(self,name,salary): #雇员具有一个新的属性:工资
## has-a
super(Employee,self).__init__(name) # 父系,使用 Person 类里面的 name
self.salary = salary
## is-a
class Fish(object): # 定义鱼
pass
class Salmon(Fish): # 定义Salmon,隶属于鱼类
pass
class Halibut(Fish): # 定义Halibut, 隶属于鱼类
pass
# rover is-a dog
rover = Dog("Rover") # 实例化: 叫“Rover”的狗
## is-a
satan = Cat("Satan") # 实例化: 叫“Satan”的猫
mary = Person("Mary") # 实例化: 叫“Mary”的人
mary.pet = satan # “Mary” 有一个叫 satan 的宠物猫
frank = Employee("Frank", 12000) # 叫 “Frank” 工资12000的雇员
frank.pet = rover #“Frank”的宠物叫rover. 可见在上面实例化的时候,并没有直接调用宠物的属性
flipper = Fish() # 实例化鱼
crouse = Salmon() # 实例化Salmon
harry = Halibut() # 实例化Halibut
早期没有super时候的调用
class A:
def __init__(self):
print "enter A"
print "leave A"
class B(A): # 类A的B
def __init__(self):
print "enter B"
A.__init__(self) # 调用A里面的参量
print "leave B"
>>> b = B()
enter B
enter A
leave A
leave B
'''
[出处](https://www.cnblogs.com/lovemo1314/archive/2011/05/03/2035005.html)