首页 > 编程语言 >Python 中的面向对象编程

Python 中的面向对象编程

时间:2024-07-26 13:27:00浏览次数:14  
标签:__ return Python self 面向对象编程 model make def

一.介绍

在本文中,我们将使用 Python 中的类和对象来探索基本的 OOP 概念。面向对象编程 (OOP) 是一种强大的方法,可帮助开发人员组织代码,使其易于理解、重用和维护。Python 是一种灵活的语言,可以很好地支持 OOP 概念。

1. 类和对象

类是创建对象的蓝图。它定义了该类的对象将具有的一组属性和方法。

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

    def display_info(self):
        return f"{self.year} {self.make} {self.model}"

# Creating an object
my_car = Car("Toyota", "Corolla", 2022)
print(my_car.display_info())
# O/P: 2022 Toyota Corolla

在上面的例子中,Car 是一个类,而 my_car 是 Car 类的一个对象(实例)。

2.封装

封装是将数据和操作该数据的方法捆绑在一个单元(类)内。它限制对对象某些组件的直接访问,这是一种防止意外干扰和误用方法和数据的方法。

class BankAccount:
    def __init__(self, account_number, balance):
        self.__account_number = account_number  # private attribute
        self.__balance = balance  # private attribute

    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount
            return True
        return False

    def withdraw(self, amount):
        if 0 < amount <= self.__balance:
            self.__balance -= amount
            return True
        return False

    def get_balance(self):
        return self.__balance

account = BankAccount("123456", 1000)
print(account.get_balance())  # O/P: 1000
account.deposit(500)
print(account.get_balance())  # O/P: 1500

在上面的例子中,account_number 和 balance 是私有属性,只能在类内访问。

3. 继承

继承允许一个类从另一个类继承属性和方法。这提高了代码的可重用性并建立了父类和子类之间的关系。

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

    def start_engine(self):
        return "The engine is running!"

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

    def honk(self):
        return "Beep beep!"

my_car = Car("Honda", "Civic", "Gasoline")
print(my_car.start_engine())  # O/P: The engine is running!
print(my_car.honk())  # O/P: Beep beep!

在上面的例子中,Car从Vehicle继承并添加了自己的方法honk()。

4.多态性

多态性允许将不同类的对象视为一个共同基类的对象。它允许使用具有不同底层形式(数据类型或类)的单一接口。

class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        return "Bhoow!"

class Cat(Animal):
    def speak(self):
        return "Meow!"

class Cow(Animal):
    def speak(self):
        return "Moo!"

def animal_sound(animal):
    return animal.speak()

dog = Dog()
cat = Cat()
cow = Cow()

print(animal_sound(dog))  # O/P: Bhoow!
print(animal_sound(cat))  # O/P: Meow!
print(animal_sound(cow))  # O/P: Moo!

在上面的例子中,animal_sound() 函数可以与任何具有 talk() 方法的对象一起使用,从而展示了多态性。

5.抽象

抽象是隐藏复杂的实现细节并仅显示对象必要特性的过程。在 Python 中,抽象类和方法用于实现抽象。

二.概括

Python 中的面向对象编程提供了一种强大的代码结构化方法,可提高模块化、可重用性和可维护性。通过理解和应用这些核心 OOP 概念(类和对象、封装、继承、多态性和抽象),您可以编写更高效、更有条理且可扩展的 Python 代码。

标签:__,return,Python,self,面向对象编程,model,make,def
From: https://blog.csdn.net/xiefeng240601/article/details/140652991

相关文章

  • 学习资源系列之《Python深度学习基于PyTorch》
     前言近期应部分读者朋友的强烈邀请,希望推荐一本python深度学习实操的书籍。呐,今天为大家推荐小编偶然发现的这一本珍藏好书:《Python深度学习基于PyTorch》,文末附电子版获取方式《Python深度学习基于PyTorch》BriefIntroduction前言面对众多的深......
  • 如何使用Python实现语音转文字/字幕
    文章目录......
  • Python 教程(三):字符串特性大全
    目录专栏列表前言1.字符串基础2.字符串方法字符串查询字符串修改字符串切片3.字符串格式化旧式格式化(`%`操作符)`str.format()`方法f-string(Python3.6+)4.字符串编码5.Unicode和ASCII6.正则表达式7.字符串比较8.字符串连接9.字符串不可变性10.字符串的内......
  • python+flask计算机毕业设计新冠肺炎疫情人员统计及打卡系统(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景自新冠肺炎疫情爆发以来,全球公共卫生体系面临前所未有的挑战。疫情防控工作的高效开展,依赖于对人员流动、健康状况及疫情数据的精准掌握与......
  • python+flask计算机毕业设计基于智能匹配的体育场馆预约系统App(程序+开题+论文)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着全民健身意识的日益增强,体育场馆作为民众参与体育活动的重要场所,其利用率与便捷性成为了社会关注的焦点。然而,传统的体育场馆预约方式......
  • Vonage 语音 API - 使用 python 出现错误
    我正在尝试使用vonage语音api模拟语音通话。我正在尝试使用python来做到这一点。我创建了一个.env文件并更新了应用程序id和私钥值的值,而不是路径(不确定从哪里获取它)。这是下面编写的代码:#!/usr/bin/envpython3importosfromos.pathimportjoin,dirname......
  • 数据清洗与预处理:使用 Python Pandas 库
    数据清洗与预处理:使用PythonPandas库1.简介数据清洗与预处理是数据科学和机器学习中必不可少的步骤。它涉及识别和处理原始数据中的错误、不一致和缺失值,以确保数据的质量和可靠性。Python的Pandas库提供了强大的工具,简化了数据清洗和预处理的过程。2.数据加载与探索......
  • 【Python】成功解决:`FileExistsError: [Errno 17] File exists: ‘xxx’`
    【Python】成功解决:FileExistsError:[Errno17]Fileexists:‘xxx’在Python编程中,处理文件和目录是常见的任务之一。然而,当我们尝试执行某些文件操作,如创建新文件或目录时,如果目标文件或目录已经存在,就可能会遇到FileExistsError异常。这个错误通常伴随着消息[Errno1......
  • (三)Python基本数据类型
    Python的基本数据类型包括整数类型、浮点数类型和复数类型。下面分别介绍这些数据类型以及数值运算操作符和数值运算函数。整数类型(int):整数类型表示没有小数部分的数字,可以是正数、负数或零。例如:a=5b=-3c=02.浮点数类型(float):浮点数类型表示有小数部分的数字,可以......
  • 【Python自动化办公】用Pandas库自动化操作Excel表格,从读取、写入到数据处理和分析
    文末免费赠送精品编程资料~~前言Python的第三方Pandas库是数据处理和分析中的利器,其强大的功能可以帮助我们轻松地对Excel表格进行自动化操作。接下来,我们将介绍九个用Pandas库操作Excel的编程例子,并且每个例子都会涉及不同的知识点,确保全面掌握这个主题。1.读取和写入E......