Python面向对象编程——类与对象的基础入门

Python面向对象编程——类与对象的基础入门

目录

Python面向对象编程——类与对象的基础入门

1. 面向对象编程(OOP)概述

2. 类和对象的基本概念

2.1 类(Class)

2.2 对象(Object)

3. 构造函数(__init__ 方法)

4. 类的继承

5. 方法重写

6. 访问控制

7. 总结


1. 面向对象编程(OOP)概述

面向对象编程(OOP)是一种编程范式,它将数据和操作数据的代码组织成对象。对象是类的实例,类则是创建对象的蓝图。OOP 使得程序更具模块性、可重用性和可维护性。

2. 类和对象的基本概念

2.1 类(Class)

类可以看作是一个模板或蓝图,它定义了创建对象所需的属性和方法。可以把类比作一个建筑设计图,它描述了建筑的结构和功能,但不是真实的建筑。

示例:

 

python

class Car:
    # 类的属性
    color = "red"
    brand = "Toyota"
    
    # 类的方法
    def drive(self):
        print("The car is driving.")

在这个示例中,Car 是一个类,它有两个属性(colorbrand)和一个方法(drive())。

2.2 对象(Object)

对象是类的实例,具有类定义的属性和方法。可以把对象比作根据建筑设计图建造的实际建筑。每个对象都有自己的特征和行为。

示例:

 

python

# 创建对象
my_car = Car()

# 访问对象的属性
print(my_car.color)  # red
print(my_car.brand)  # Toyota

# 调用对象的方法
my_car.drive()  # The car is driving.

在这个示例中,my_carCar 类的一个对象,我们可以访问它的属性和方法。

3. 构造函数(__init__ 方法)

构造函数 __init__ 是一个特殊的方法,用于初始化对象的属性。当你创建对象时,__init__ 方法会自动被调用,用来设置对象的初始状态。

示例:

 

python

class Car:
    def __init__(self, color, brand):
        self.color = color
        self.brand = brand
    
    def drive(self):
        print(f"The {self.color} {self.brand} car is driving.")

在这个示例中,__init__ 方法接受两个参数(colorbrand),并将它们分配给对象的属性。

创建对象时传递参数:

 

python

# 创建对象并传递参数
my_car = Car("blue", "Honda")

# 调用对象的方法
my_car.drive()  # The blue Honda car is driving.

4. 类的继承

继承允许我们创建一个新的类,这个类继承自一个已存在的类。新类(子类)可以继承父类的属性和方法,同时也可以添加或重写一些功能。继承使得代码的复用变得更简单。

示例:

 

python

class ElectricCar(Car):
    def __init__(self, color, brand, battery_size=75):
        # 调用父类的构造函数
        super().__init__(color, brand)
        self.battery_size = battery_size
    
    def describe_battery(self):
        print(f"This car has a {self.battery_size}-kWh battery.")

在这个示例中,ElectricCar 类继承自 Car 类。ElectricCar 类添加了一个新的属性 battery_size 和一个新的方法 describe_battery()

创建子类的对象:

 

python

# 创建 ElectricCar 对象
my_electric_car = ElectricCar("green", "Tesla")

# 调用父类和子类的方法
my_electric_car.drive()           # The green Tesla car is driving.
my_electric_car.describe_battery()  # This car has a 75-kWh battery.

5. 方法重写

子类可以重写(覆盖)从父类继承的方法,以实现不同的功能。这样,子类可以修改或扩展父类的行为。

示例:

 

python

class ElectricCar(Car):
    def __init__(self, color, brand, battery_size=75):
        super().__init__(color, brand)
        self.battery_size = battery_size
    
    def drive(self):
        print(f"The electric car {self.color} {self.brand} is driving silently.")

在这个示例中,ElectricCar 类重写了 drive() 方法,提供了不同的实现。

创建对象并调用重写的方法:

 

python

# 创建 ElectricCar 对象
my_electric_car = ElectricCar("green", "Tesla")

# 调用重写的方法
my_electric_car.drive()  # The electric car green Tesla is driving silently.

6. 访问控制

Python 中的类属性和方法默认是公共的。你可以使用下划线前缀来表示它们是受保护的(但这并不是强制性的):

  • 单下划线(_:表示受保护的属性或方法,应该在类内部或子类中使用。
  • 双下划线(__:表示私有的属性或方法,只能在类内部访问。

示例:

 

python

class Car:
    def __init__(self, color, brand):
        self.color = color
        self.brand = brand
        self.__private_attr = "This is private"
    
    def __private_method(self):
        print("This is a private method.")
    
    def public_method(self):
        print("This is a public method.")
        self.__private_method()

python

在这个示例中,__private_attr__private_method() 是私有的,只能在 Car 类内部访问。

尝试访问私有属性和方法:

 

python

my_car = Car("red", "Toyota")

# 访问公共属性和方法
print(my_car.color)          # red
my_car.public_method()      # This is a public method.
                            # This is a private method.

# 尝试访问私有属性和方法(会引发错误)
print(my_car.__private_attr)  # AttributeError
my_car.__private_method()     # AttributeError

python

7. 总结

在这篇文章中,我们介绍了 Python 的面向对象编程(OOP)基础知识,包括类和对象的创建与使用、构造函数、继承、方法重写和访问控制。掌握 OOP 的概念可以帮助你更好地组织和管理代码,使你的程序更加模块化和可维护。接下来,我们将探讨 Python 的标准库和第三方库,了解如何利用这些工具提高编程效率。敬请期待下一篇文章!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值