笨方法学Python 习题42

#!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)

猜你喜欢

转载自blog.csdn.net/weixin_43254423/article/details/83211147