习题42 对象、类及从属关系

书里面用了泥鳅、黄鳝、鱼的例子,挺好理解的。

给泥鳅A命名小丽。

那么鱼就是一个类(class),泥鳅也是一个类(class),小丽是泥鳅的一个实例(instance)。

鱼不是一个具体的东西,而是一个用来描述具有同类属性的实例的概括性词汇。

泥鳅也是鱼的一个类。



于是有:对象属于某个类,而某个类又属于另一个类。


下面代码的注释也是习题。

## Animal is-a object (yes, sort of confusing) look at the extra credit
class Animal(object):
    pass

## ??
class Dog(Animal):

    def __init__(self, name):
        ## ??
        self.name = name

## ??
class Cat(Animal):

    def __init__(self, name):
        ## ??
        self.name = name

## ??
class Person(object):
    
    def __init__(self, name):
        ## ??
        self.name = name

        ## Person has-a pet of some kind
        self.pet = None
    
## ??
class Employee(Person):

    def __init__(self, name, salary):
        ## ?? hmm what is this strange magic?
        super(Employee, self).__init__(name)
        ## ??
        self.salary = salary

## ??
class Fish(object):
    pass

## ??
class Salmon(Fish):
    pass

## ??
class Halibut(Fish):
    pass


## rover is-a Dog
rover = Dog("Rover")

## ??
satan = Cat("Satan")

## ??
mary = Person("Mary")

## ??
mary.pet = satan

## ??
frank = Employee("Frank", 120000)

## ??
frank.pet = rover

## ??
flipper = Fish()

## ??
crouse = Salmon()

## ??
harry = Halibut()

==================================================================================================


现在开始注释练习

#-*-coding:utf-8-*-    
## Animal is-a object (yes, sort of confusing) look at the extra credit
class Animal(object):
    pass

## Dog is-a Animal
class Dog(Animal):

    def __init__(self, name):
        ## Dog has-a name
        self.name = name

## Cat is-a Animal
class Cat(Animal):

    def __init__(self, name):
        ## Cat has-a name
        self.name = name

## Person is-a object
class Person(object):
    
    def __init__(self, name):
        ## Person has-a name
        self.name = name

        ## Person has-a pet of some kind
        self.pet = None
    
## Employee is-a Person
class Employee(Person):

    def __init__(self, name, salary):
        ## Employee has-a name      hmm what is this strange magic?
        ## 子类调用父类时候使用 super(子类名, self).方法名(参数)
        ## 子类 Employee 要调用父类 Person 的 name ,因为这里本来没有 name 这个东西
        super(Employee, self).__init__(name)
        ## Employee has-a salary
        self.salary = salary

## Fish is-a object
class Fish(object):
    pass

## Salmon is-a Fish
class Salmon(Fish):
    pass

## Halibut is-a Fish
class Halibut(Fish):
    pass


## rover is-a Dog
rover = Dog("Rover")

## satan is-a Cat
satan = Cat("Satan")

## mary is-a Person
mary = Person("Mary")

## mary has-a pet named satan
mary.pet = satan

## frank is-a Employee ,frank has-a salary = 120000
frank = Employee("Frank", 120000)

## frank has-a pet named rover
frank.pet = rover

## 把 flipper 设为类 Fish 的一个实例
flipper = Fish()

## Salmon 三文鱼,把 crouse 设为 Salmon 的一个实例
crouse = Salmon()

## Halibut 大比目鱼,把 harry 设为 Halibut 的一个实例
harry = Halibut()





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值