【数据分析之道-基础知识(十一)】面向对象

news/2024/6/29 12:02:49 标签: python, 面向对象

在这里插入图片描述

文章目录

  • 专栏导读
  • 1、简介
  • 2、类与对象
  • 3、属性和方法
  • 4、继承
  • 5、多态

专栏导读

✍ 作者简介:i阿极,CSDN Python领域新星创作者,专注于分享python领域知识。

本文录入于《数据分析之道》,本专栏针对大学生、初级数据分析工程师精心打造,对python基础知识点逐一击破,不断学习,提升自我。
订阅后,可以阅读《数据分析之道》中全部文章内容,包含python基础语法、数据结构和文件操作,科学计算,实现文件内容操作,实现数据可视化等等。
✍ 其他专栏:《数据分析案例》 ,《机器学习案例》

😊😊😊如果觉得文章不错或能帮助到你学习,可以点赞👍收藏📁评论📒+关注哦!👍👍👍

📜📜📜如果有小伙伴需要数据集和学习交流,文章下方有交流学习区!一起学习进步!💪

订阅专栏阅读:《数据分析之道》
【数据分析之道-基础知识(一)】字符串
【数据分析之道-基础知识(二)】列表
【数据分析之道-基础知识(三)】元组
【数据分析之道-基础知识(四)】字典
【数据分析之道-基础知识(五)】集合
【数据分析之道-基础知识(六)】函数
【数据分析之道-基础知识(七)】高级函数
【数据分析之道-基础知识(八)】循环语句
【数据分析之道-基础知识(九)】推导式
【数据分析之道-基础知识(十)】Lambda函数

1、简介

Python 是一种面向对象的编程语言,它提供了丰富的面向对象编程特性和语法。面向对象编程(OOP)是一种编程范式,它将数据和与之相关的操作封装在对象中,通过定义类和实例化对象来实现程序的组织和设计。

在 Python 中,面向对象编程的核心概念包括类(Class)、对象(Object)、属性(Attribute)、方法(Method)、继承(Inheritance)和多态(Polymorphism)等。

2、类与对象

类是对象的蓝图或模板,它定义了一组属性和方法,用于描述具有相同特征和行为的对象的集合。对象是类的实例,它具有类定义的属性和方法。

在 Python 中,定义类使用 class 关键字,通过类创建对象的过程称为实例化。以下是定义一个简单类的示例:

python">class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, my name is {self.name}.")

# 创建对象
person1 = Person("Alice", 25)
person2 = Person("Bob", 30)

# 调用对象的方法
person1.greet()
person2.greet()

Person 是一个类,它有两个属性 name 和 age,以及一个方法 greet。通过调用 Person 类的构造函数 init,可以创建 Person 类的实例(对象)。每个对象都有自己的属性值,通过 self 关键字来引用。

3、属性和方法

属性是对象的特征或状态,用于存储对象的数据。方法是对象的行为或操作,用于实现对象的功能。

在类中定义属性和方法时,需要使用特殊的 self 参数,它代表对象自身。通过 self,可以访问和操作对象的属性和方法。

以下是一个包含属性和方法的类示例:

python">class Rectangle:
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

    def perimeter(self):
        return 2 * (self.width + self.height)

# 创建对象
rectangle = Rectangle(5, 3)

# 调用对象的方法和访问属性
print("Area:", rectangle.area())
print("Perimeter:", rectangle.perimeter())
print("Width:", rectangle.width)
print("Height:", rectangle.height)

Rectangle 类有两个属性 width 和 height,以及两个方法 area 和 perimeter。通过创建 Rectangle 对象并调用对象的方法,可以计算矩形的面积和周长,以及访问矩形的宽度和高度。

4、继承

继承是面向对象编程中的一个重要概念,它允许一个类继承另一个类的属性和方法。通过继承,可以建立类之间的层次结构,从而实现代码的重用和扩展。

在 Python 中,使用 class ChildClass(ParentClass) 的形式来实现继承。子类(派生类)继承了父类(基类)的属性和方法,并可以定义自己的新属性和方法。

以下是一个继承的示例:

python">class Animal:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print("Animal is eating.")

class Dog(Animal):
    def bark(self):
        print("Dog is barking.")

# 创建对象
animal = Animal("Generic Animal")
dog = Dog("Tommy")

# 调用继承的方法和子类的方法
animal.eat()
dog.eat()
dog.bark()

Animal 是一个基类,Dog 是一个派生类,它继承了 Animal 类的属性和方法。通过创建 Animal 和 Dog 对象,并调用它们的方法,可以看到派生类可以访问基类的方法,同时还可以定义自己的新方法。

5、多态

多态是面向对象编程中的另一个重要概念,它允许使用相同的接口来处理不同类型的对象,而不需要知道对象的具体类型。

在 Python 中,多态性是通过方法重写(Method Overriding)实现的。子类可以重写父类的方法,从而在相同的方法调用下表现出不同的行为。

以下是一个多态的示例:

python">class Shape:
    def area(self):
        pass

class Rectangle(Shape):
    def __init__(self, width, height):
        self.width = width
        self.height = height

    def area(self):
        return self.width * self.height

class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius ** 2

# 创建对象
rectangle = Rectangle(5, 3)
circle = Circle(4)

# 调用多态的方法
shapes = [rectangle, circle]
for shape in shapes:
    print("Area:", shape.area())

Shape 是一个基类,Rectangle 和 Circle 是派生类。它们都实现了 Shape 类的 area 方法,但具体的实现不同。通过创建 Rectangle 和 Circle 对象,并将它们放入列表中,然后遍历列表并调用 area 方法,可以看到相同的方法调用根据对象的类型表现出不同的行为。


📢文章下方有交流学习区!一起学习进步!💪💪💪
📢首发CSDN博客,创作不易,如果觉得文章不错,可以点赞👍收藏📁评论📒
📢你的支持和鼓励是我创作的动力❗❗❗


http://www.niftyadmin.cn/n/340035.html

相关文章

NSFuzz: Towards Eficient and State-Aware Network Service Fuzzing

作为负责通信的重要组成部分,网络服务是安全的关键,因此发现其中的漏洞至关重要。模糊法是目前最流行的软件漏洞发现技术之一,由于其高有效性和低误报率而被广泛采用。然而,现有的覆盖引导型模糊测试主要针对无状态的本地应用程序,而对有状态的网络服务则没有进行充分的探…

手机APP性能测试工具PerfDog性能狗安装教程及简单使用

一、前言 PerfDog是一个由腾讯研发的主流性能测试软件。可以提高软件和游戏的运行效率,支持iOS/安卓在移动平台上的性能测试和分析,快速定位和分析性能问题等。无需安装,即插即用,减少繁琐的测试障碍,安卓设备不需要RO…

模型实验代码技巧

文章目录 1. 设置随机种子2. 参数加载3. 数据处理4. 模型优化 1. 设置随机种子 seed 1234 os.environ[PYTHONHASHSEED] str(seed) random.seed(seed) np.random.seed(seed) torch.manual_seed(seed) torch.cuda.manual_seed(seed) torch.cuda.manual_seed_all(seed) torch.b…

DRMS-关于开展防范风险整改工作的工作计划

防范风险整改工作 工作计划 2023年5月10日 尊敬的【DRMS】集群用户: 根据河南省郑州市国家高新技术产业开发区市场监督管理局《关于河南数权数字信息科技研究院网络违规整改通知》及…

全网最牛最全面的jmeter教程之jmeter对图片验证码的处理

jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入,而且每次登录时图片验证码都是随机的;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段,然后再登录接口中使用; 通过jmeter对图片验证码…

2 机器学习知识 Softmax回归 deep learning system

机器学习算法的三个主要部分 The hypothesis class: 模型结构loss fuction 损失函数An optimization method:在训练集上减小loss的方法 多分类问题 训练数据: x ( i ) ∈ R n , y ( i ) ∈ 1 , . . . , k f o r i 1 , . . . m x^{(i)}\in \mathbb{R}…

std::thread使用

std::thread使用 join & detachjoinable() 函数代码演示主线程不做操作joindetach join & detach 定义区别: join 会阻塞,调用线程等待子线程执行完毕,然后再往下执行detach 分离,调用线程不再等待子线程结束&#xff0…

为什么说华为MatePad Air是难得的轻办公效率利器?

出品 | 何玺 排版 | 叶媛 说到轻办公装备,平板电脑一直是比较受消费者喜欢的产品,可惜的是,不少用户虽然最开始是奔着其“生产力”去的,但最后都将其当做了爱奇艺播放工具。这是因为,不少品牌的平板电脑其实只能当娱乐…