Python 类的学习

"""
9.1.1 创建 Dog 类
"""
# -*- coding: UTF-8 -*-


class Dog:
    """一次模拟小狗的简单尝试。"""

    def __init__(self, name, age):
        """初始化属性 name 和 age """
        self.name = name
        self.age = age

    def sit(self):
        """模拟小狗收到命令时蹲下"""
        print(f"{self.name} is now sitting.")

    def roll_over(self):
        """模拟小狗收到命令时打滚。"""
        print(f"{self.name} rooled over!")


my_dog = Dog('Willie', 6)
print(f"My dog's name is {my_dog.name}.")

'''
输出:
My dog's name is Willie.
'''
"""
9.2.1 Car 类 与 继承
"""
# -*- coding: UTF-8 -*-


class Car:
    """一次模拟汽车的简单尝试。"""
    def __init__(self, make, model, year):
        """初始化描述汽车的属性。"""
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        """返回整洁的描述性信息。"""
        long_name = f"{self.year} {self.make} {self.model}"
        return long_name.title()

    def read_odometer(self):
        """打印一条指出汽车里程的信息。"""
        print(f"This car has {self.odometer_reading} miles on it.")

    def update_odometer(self, mileage):
        """将里程表读数设置为指定的值。禁止将里程表读数往回调。"""
        if mileage >= self.odometer_reading:
            self.odometer_reading = mileage
        else:
            print("You cant't roll back an odometer!")

    def increment_odometer(self, miles):
        """将里程表读数增加指定的量。"""
        self.odometer_reading += miles

    def fill_gas_tank(self):
        """汽车有油箱。"""
        print("This car need a gas tank!")


class ElectricCar(Car):
    """电动汽车的独特之处。"""
    def __init__(self, make, model, year):
        """初始化父类的属性。"""
        super().__init__(make, model, year)
        """初始化子类的属性,电动汽车特有的属性。"""
        self.battery_size = 75

    def describe_battery(self):
        """打印一条描述电瓶容量的消息。"""
        print(f"This car has a {self.battery_size}-kWh battery.")

    # 重写父类的方法
    def fill_gas_tank(self):
        """电动汽车没有邮箱。"""
        print("This car doesn't need a gas tank!")


# Car 类
my_new_car = Car('Tank', '300', 2024)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()

my_new_car.update_odometer(23)
my_new_car.read_odometer()

my_new_car.update_odometer(2)

my_new_car.increment_odometer(100)
my_new_car.read_odometer()
'''
输出:
2024 Tank 300
This car has 0 miles on it.
This car has 23 miles on it.
You cant't roll back an odometer!
This car has 123 miles on it.
'''

# 继承
my_byd = ElectricCar('BYD', '唐', 2024)
print(my_byd.get_descriptive_name())
my_byd.describe_battery()
my_byd.fill_gas_tank()
'''
输出:
2024 Byd 唐
This car has a 75-kWh battery.
This car doesn't need a gas tank!
'''
'''
参考:
《Python 编程从入门到实践》第2版
'''
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值