当前位置:首页>python>Python入门之类的探索与应用(一)

Python入门之类的探索与应用(一)

  • 2026-09-02 19:40:21
Python入门之类的探索与应用(一)

一、Python类的基础概念

(一)类的定义与作用

在Python中,类是一种创建对象的蓝图或模板。它就像一个汽车的设计图纸,定义了对象应该具有的属性和方法。基于这个类,我们可以创建出多个具体的对象,也就是类的实例。例如,我们可以有一个“汽车”类,然后根据这个类创建出不同颜色、不同型号的具体汽车对象。

(二)类的组成部分

类由类头和类体构成。类头是类的名称,类体包含属性(变量)和方法(函数)。属性用于描述对象的特征,方法则是对象可以执行的操作。

二、创建和使用类

(一)创建Dog类

以下是创建一个简单的Dog类的代码:

classDog:def__init__(self, name, age):        self.name = name        self.age = agedefsit(self):        print(self.name.title() + " is now sitting.")

在这个Dog类中,__init__方法是一个特殊的方法,用于初始化对象的属性。这里我们初始化了name和age两个属性。sit方法是一个普通的类方法,用于描述狗坐下这个动作。

(二)根据类创建实例

创建Dog类的实例非常简单,如下所示:

my_dog = Dog("willie", 6)print("My dog's name is " + my_dog.name.title() + ".")print("My dog is " + str(my_dog.age) + " years old.")my_dog.sit()

我们通过Dog类创建了一个名为my_dog的实例,然后可以访问它的属性和调用它的方法。

三、使用类和实例

(一)Car类

下面是一个Car类的示例代码:

classCar:def__init__(self, make, model, year):        self.make = make        self.model = model        self.year = year        self.odometer_reading = 0defget_descriptive_name(self):        long_name = str(self.year)+' '+self.make +' '+self.modelreturn long_name.title()defread_odometer(self):        print("This car has " + str(self.odometer_reading) + " miles on it.")

在这个Car类中,我们定义了汽车的品牌、型号、生产年份等属性,还有一个里程表读数的属性并初始化为0。同时定义了获取汽车描述性名称和读取里程表读数的方法。

(二)给属性指定默认值

在上述Car类的__init__方法中,我们已经给odometer_reading属性指定了默认值0。这种方式可以确保当我们创建一个Car实例时,如果没有特别指定里程表读数,它就会有一个默认的初始值。

(三)修改属性的值

  1. 直接修改属性的值我们可以直接修改Car实例的属性值,如下:
my_car = Car("audi", "a4", 2019)my_car.odometer_reading = 23my_car.read_odometer()

这里我们直接将my_car的odometer_reading属性修改为23。

  1. 通过方法修改属性的值我们也可以通过定义方法来修改属性值,在Car类中添加如下方法:
defupdate_odometer(self, mileage):        self.odometer_reading = mileage

然后可以这样使用:

my_car = Car("audi", "a4", 2019)my_car.update_odometer(45)my_car.read_odometer()
  1. 通过方法对属性的值进行递增再添加一个方法用于递增里程表读数:
defincrement_odometer(self, miles):        self.odometer_reading += miles

使用示例:

my_car = Car("audi", "a4", 2019)my_car.increment_odometer(10)my_car.read_odometer()

四、继承的魅力

(一)子类的方法__init__()

假设我们有一个ElectricCar类继承自Car类,以下是代码示例:

classElectricCar(Car):def__init__(self, make, model, year):        super().__init__(make, model, year)

这里的super().__init__方法用于调用父类Car的__init__方法来初始化继承自父类的属性。

(二)给子类定义属性和方法

我们可以给ElectricCar类添加特有的属性和方法,比如添加一个电池容量属性和一个描述电池容量的方法:

classElectricCar(Car):def__init__(self, make, model, year):        super().__init__(make, model, year)        self.battery_size = 70defdescribe_battery(self):        print("This car has a " + str(self.battery_size) + "-kWh battery.")

(三)重写父类的方法

如果我们想改变父类Car中get_descriptive_name方法的行为,我们可以在子类ElectricCar中重写这个方法,如下:

classElectricCar(Car):def__init__(self, make, model, year):        super().__init__(make, model, year)        self.battery_size = 70defdescribe_battery(self):        print("This car has a " + str(self.battery_size) + "-kWh battery.")defget_descriptive_name(self):        long_name = str(self.year)+' '+self.make +' '+self.model +' (Electric)'return long_name.title()

(四)将实例用作属性

假设我们有一个类来表示汽车的电池,如下:

classBattery:def__init__(self, battery_size = 70):        self.battery_size = battery_sizedefdescribe_battery(self):        print("This battery has a capacity of " + str(self.battery_size) + " -kWh.")

然后我们可以在ElectricCar类中将Battery类的实例作为一个属性:

classElectricCar(Car):def__init__(self, make, model, year):        super().__init__(make, model, year)        self.battery = Battery()

这样我们就可以通过my_electric_car.battery.describe_battery()来调用电池类的方法了,这里my_electric_car是ElectricCar类的一个实例。

最新文章

随机文章