创建Car类

这篇博客介绍了如何在Python中创建一个Car类,包括初始化方法__init__,用于设置汽车的制造商、型号和年份。此外,还讨论了如何定义get_descriptive_name()方法来获取描述性的汽车名称,以及如何为属性如odometer_reading设置默认值并提供方法来修改和递增其值。示例中展示了如何创建实例,通过实例直接或通过方法修改属性,并提供了增量方法increment_odometer()的应用。
部署运行你感兴趣的模型镜像

使用类和实例

                                                                             作者:雷蕾

先来看一个表示汽车的类,它存储了有关汽车的信息以及汇总这些信息的方法:

class Car:
    '''一次模拟汽车的简单尝试'''
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
    def get_descriptive_name(self):
        '''返回整洁的描述性信息'''
        long_name=f"{self.year} {self.make} {self.model}"
        return long_name.title()
my_car=Car('audi','a4',2019)
print(f"my car is  {my_car.get_descriptive_name()}")

在这个示例中,我们定义了方法__init__()。与前面的Dog类一样,这个方法的第一个形参为self,该方法还包括另外的三个形参:model、make和year,方法__init__接受这些形参的值,并将它们赋给根据这个类创建的实例的属性,创建新的Car实例时,需要指定其制造商make,型号model和生产年份year。
除此之外,我们还定义了get_descriptive_name()的方法,它使用属性model、make和year创建一个对汽车进行描述的字符串,为了在这方法中访问属性的值,使用了self.year}、self.make、 self.mode。
my_car=Car(‘audi’,‘a4’,2019)是根据Car类创建了一个实例,并将其赋给变量my_car,之后调用方法get_descriptive_name()。
看看运行结果是不是调用get_descriptive_name方法来描述我们拥有一辆什么样的车:

my car is  2019 Audi A4

给属性指定默认值:
创建实例时,有些属性无须通过形参来定义,可在方法__init__()中为其指定默认值。

class Car:
    '''一次模拟汽车的简单尝试'''
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0
    def get_descriptive(self):
        '''返回整洁的描述性信息'''
        long_name=f"{self.year} {self.make} {self.model}"
        return long_name.title()
    def read_odometer(self):
        '''读取里程数'''
        print(f"this car's meter is {self.odometer_reading} miles on it")
my_car=Car('audi','a4',2019) 
print(f"my car is  {my_car.get_descriptive()}")
my_car.read_odometer()

在上述示例中,我们添加了一个属性名为odometer_reading,并将它的值默认为0,此外,我们还添加了一个方法read_odometer()。

my car is  2019 Audi A4
this car's meter is 0 miles on it

修改属性的值:
我们还可以对所添加的属性odometer_reading的值进行修改。
(1)通过实例直接修改属性值

class Car:
    '''一次模拟汽车的简单尝试'''
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0
    def get_descriptive(self):
        '''返回整洁的描述性信息'''
        long_name=f"{self.year} {self.make} {self.model}"
        return long_name.title()
    def read_odometer(self):
        '''读取里程数'''
        print(f"this car's meter is {self.odometer_reading} miles on it")
my_car=Car('audi','a4',2019) 
print(f"my car is  {my_car.get_descriptive()}")
my_car.read_odometer()
my_car.odometer_reading=23
my_car.read_odometer()

我们通过添加代码行my_car.odometer_reading=23对odometer_reading的值进行修改,从运行结果可以看出,odometer_reading的值从0变为23。

my car is  2019 Audi A4
this car's meter is 0 miles on it
this car's meter is 23 miles on it

(2)通过方法修改属性的值

class Car:
    '''一次模拟汽车的简单尝试'''
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0
    def get_descriptive(self):
        '''返回整洁的描述性信息'''
        long_name=f"{self.year} {self.make} {self.model}"
        return long_name.title()
    def read_odometer(self):
        '''读取里程数'''
        print(f"this car's meter is {self.odometer_reading} miles on it")

    def update_odometer(self,mileage):
        '''将里程数设置为指定的值'''
        self.odometer_reading=mileage
my_car=Car('audi','a4',2019) 
print(f"my car is  {my_car.get_descriptive()}")
my_car.read_odometer()
my_car.update_odometer(23)
my_car.read_odometer()

在这个示例中,我们添加了新方法update_odometer(),这个方法接受给形参’mileage’的值,并将值赋给 self.odometer_reading。
代码行my_car.update_odometer(23)是我们调用了方法update_odometer(),并向它提供实参23,运行结果与上述示例一样。

my car is  2019 Audi A4
this car's meter is 0 miles on it
this car's meter is 23 miles on it

(3)通过方法对属性的值进行递增

class Car:
    '''一次模拟汽车的简单尝试'''
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=0
    def get_descriptive(self):
        '''返回整洁的描述性信息'''
        long_name=f"{self.year} {self.make} {self.model}"
        return long_name.title()
    def read_odometer(self):
        '''读取里程数'''
        print(f"this car's meter is {self.odometer_reading} miles on it")
    def update_odometer(self,mileage):
        '''将里程数设置为指定的值'''
        self.odometer_reading=mileage
    def increment_odometer(self,miles):
        '''将里程数增加指定的量'''
        self.odometer_reading+=miles
my_car=Car('audi','a4',2019) 
print(f"my car is  {my_car.get_descriptive()}")
my_car.read_odometer()
my_car.update_odometer(23)
my_car.read_odometer()
my_car.increment_odometer(10)
my_car.read_odometer()

示例中,我们添加一个新方法increment_odometer(),它接受给形参’miles’的值,并将值加入 self.odometer_reading中。
代码行my_car.increment_odometer(10)调用方法increment_odometer()并传入10,我们看看运行结果是不是变成了33(23+10):

my car is  2019 Audi A4
this car's meter is 0 miles on it
this car's meter is 23 miles on it
this car's meter is 33 miles on it

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值