【Python】Learn Python the hard way, ex42 对、类及从属关系

本文通过具体的动物类比,展示了面向对象编程的基本概念,包括继承(is-a)和组合(has-a)。通过定义一系列类如Animal、Dog、Cat等,演示了如何在Python中实现这些概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# Animal is-a object (yes, 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__(sefl, name):
        # has-a
        self.name = name
        
# is-a
class Person(object):
    
    def __init__(self, name):
        # has-a
        self.name = name
        
        ## Person has-a a pet of some kind
        self.pet = None
        
# is-a
class Emplyee(Person):
    
    def __init__(sefl, name, salary):
        ## ? hmm what is this strange magic?
        super(Emplyee, slef).__init__(name)
        ## has-a
        self.salary = salary
        
# is-a
class Fish(object):
    pass

# is-a
class Salmon(Fish):
    pass
    
# is-a
class Halibut(Fish):
    pass
    
# rover is-a Dog
rover = Dog("Rover")

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

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

# has-a
mary.pet = satan

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

# has-a
frank.pet = rover

# is-a
flipper = Fish()

# is-a
crouse = Salmon()

# is-a
harry = Halibut()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值