python-类及面向对象编程

1. Class语句

在Python中,使用class关键字定义一个类。类是一种创建对象的蓝图,它定义了对象的属性和方法。

class Car:
    def __init__(self, make, model):
        self.make = make
        self.model = model

    def display_info(self):
        print(f"This car is a {self.make} {self.model}.")

在这个例子中,我们定义了一个Car类,它有一个构造函数__init__和一个方法display_info

2. 访问类属性

要访问类的属性,可以使用点符号(.)。例如,如果我们有一个名为my_carCar类实例,我们可以通过以下方式访问其属性:

my_car = Car('Toyota', 'Corolla')
print(my_car.make)  # 访问make属性
print(my_car.model)  # 访问model属性

3. 类实例

类的实例是基于类定义创建的对象。在上面的例子中,my_car就是Car类的一个实例。我们使用类的构造函数来创建实例。实例化类的过程会调用构造函数__init__来初始化实例的属性。

4. 引用计数与实例销毁

在Python中,内存管理是通过引用计数和垃圾回收机制来实现的。当一个对象不再被引用时,其引用计数会减少。当引用计数为零时,对象就会被销毁。

my_car = Car('Toyota', 'Corolla')  # 创建一个实例
del my_car  # 删除对实例的引用

在上面的例子中,当my_car的引用被删除后,Python会自动销毁该实例。

5. 继承

继承允许一个类继承另一个类的属性和方法。子类可以重用父类的代码,并且可以添加额外的属性和方法。

class ElectricCar(Car):
    def __init__(self, make, model, battery_size):
        super().__init__(make, model)
        self.battery_size = battery_size

在这个例子中,ElectricCar类继承了Car类,并添加了一个battery_size属性。

6. 多态

多态是指不同类的对象对同一消息做出响应的能力。在Python中,多态是通过方法重载和鸭子类型来实现的,使得不同类的对象可以以相同的方式调用方法。

def display_car_info(car):
    car.display_info()

在这个例子中,无论是Car类的实例还是ElectricCar类的实例,都可以传递给display_car_info方法,实现了多态。

7. 数据隐藏

在Python中,通过使用双下划线(__)作为前缀,可以将属性或方法隐藏起来,使其变成私有的。

class Car:
    def __init__(self, make, model):
        self.__make = make  # 私有属性
        self.__model = model  # 私有属性

    def get_make(self):
        return self.__make

在这个例子中,__make__model是私有属性,外部无法直接访问。

8. 操作符重载

Python允许自定义类的行为,包括重载操作符。通过在类中定义特殊方法,可以重载操作符的行为。

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        return Vector(self.x + other.x, self.y + other.y)

在这个例子中,通过定义__add__方法,我们实现了+操作符的重载。

9. 类, 类型, 和成员检测

在Python中,可以使用type()函数来检查对象的类型,使用isinstance()函数来检查对象是否是某个类的实例。

my_car = Car('Toyota', 'Corolla')
print(type(my_car))  # 检查对象类型
print(isinstance(my_car, Car))  # 检查对象是否是Car类的实例

这两个函数允许你对对象的类型进行检测,以及检查对象是否是特定类的实例。

编写一个汽车销售系统程序,我们可以使用类来建模真实世界中的实体

# 
class Car:
    def __init__(self, make, model, price):
        self.make = make
        self.model = model
        self.price = price

    def display_info(self):
        return f"{self.make} {self.model} - ${self.price}"

class ElectricCar(Car):
    def __init__(self, make, model, price, battery_size):
        super().__init__(make, model, price)
        self.battery_size = battery_size

    def display_info(self):
        return f"{self.make} {self.model} - ${self.price} - Battery: {self.battery_size} kWh"

# 在汽车销售系统中创建实例并调用方法
car1 = Car('Toyota', 'Corolla', 20000)
car2 = ElectricCar('Tesla', 'Model S', 80000, 75)

print(car1.display_info())  # 显示普通汽车信息
print(car2.display_info())  # 显示电动汽车信息

在这个示例中,我们使用类来模拟汽车销售系统中的实体。我们定义了Car类和ElectricCar类,分别用于表示普通汽车和电动汽车,它们之间存在继承关系。在实例化后,我们通过调用方法展示了不同类型汽车的信息。

  • 19
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值