Python学习笔记8(类)

第八章 类

8.1 创建和使用类

class Dog():
    def __init__(self, name, age):
        """初始化属性name和age"""
        self.name = name
        self.age = age
    def sit(self):
        """模拟小狗被命令石蹲下"""
        print(self.name + "is now sitting!")
        
    def roll(self):
        """模拟小狗打滚"""
        print(self.name + "rolled over!")
dog = Dog('mango', 4)
dog.sit()
dog.roll()

8.2 修改属性的值
可以有三种方式修改属性的值:直接通过实例修改;通过设置方法进行修改;通过方法进行递增。

  • 通过设置方法修改属性:
class Car():
    """打印汽车的类型"""
    def __init__(self, make, year, model):
        """初始化"""
        self.make = make
        self.year = year
        self.model = model
        self.odometer_reading = 0
    def get_descriptive_name(self):
        """返回汽车的完整信息"""
        full_name = str(self.year) + " " + self.make + " " + self.model
        return full_name
    def read_odometer(self):
        print("这辆车已经跑了" + str(self.odometer_reading) + "公里。")
    def update_odometer(self, newodo):
        self.odometer_reading = newodo
my_car = Car('Mercedes-Benz', 2020, 'C260L')
print(my_car.get_descriptive_name())
my_car.update_odometer(20)
my_car.read_odometer()
  • 通过方法将属性的值进行递增:
class Car():
    """打印汽车的类型"""
    def __init__(self, make, year, model):
        """初始化"""
        self.make = make
        self.year = year
        self.model = model
        self.odometer_reading = 0
    def get_descriptive_name(self):
        """返回汽车的完整信息"""
        full_name = str(self.year) + " " + self.make + " " + self.model
        return full_name
    def read_odometer(self):
        print("这辆车已经跑了" + str(self.odometer_reading) + "公里。")
    def update_odometer(self, newodo):
        self.odometer_reading = newodo
    def increment_odometer(self, miles):
        self.odometer_reading += miles

8.3 继承
一个类继承另一个类时,它将自动获得另一个类的所有属性和方法。被获取的类称为父类,获取的类称为子类。

class Car():
    """父类"""
     def __init__(self, make, year, model):
        """初始化"""
        self.make = make
        self.year = year
        self.model = model
class SonCar(Car):
    """子类"""
    def __init__(self, make, year, model):
        """初始化父类的属性"""
        super().__init__(make, year, model)        

8.3.1 给子类定义特有属性和方法

class Car():
    """父类"""
     def __init__(self, make, year, model):
        """初始化"""
        self.make = make
        self.year = year
        self.model = model
class SonCar(Car):
    """子类"""
    def __init__(self, make, year, model):
        """初始化父类的属性"""
        super().__init__(make, year, model)
        # 子类特有的属性
        self.battery_size = 70
    def describe_battery(self):
        """子类特有的方法"""
        print("这辆电动汽车的电瓶容量是:" + str(self.battery_size))

8.3.2 重写父类的方法
对于父类的方法,只要它不符合子类模拟的实物的行为,就可以对其进行重写。可在子类中定义一个这样的方法,即它与要重写的父类的方法同名。

猜你喜欢

转载自blog.csdn.net/weixin_43670190/article/details/106421738