# 59. python的类与对象-更新

news/2025/1/18 11:54:18/

[目录]

文章目录

  • 59. python的类与对象-更新
    • 1.面向对象编程
    • 2.什么是类
    • 3.什么是对象
    • 4.如何描述对象
    • 5.对象的属性和方法
    • 6.Python中的类
    • 7.type()函数查看数据类型
    • 8.类在Python中的应用
    • 9.总结

【正文】

59. python的类与对象-更新

1.面向对象编程

本节内容特别抽象,初学者阅读一遍即可,不用深究每个概念的含义。

重点是后面章节的语法知识。

当你接触的代码多了,再回过头看这篇笔记,你会有新的认知,一切都会豁然开朗。

object [ˈɒbdʒɪkt]:对象。

oriented[ˈɔːrientɪd]:导向。

programming [ˈprəʊɡræmɪŋ]:程序。

object-oriented programming简称OOP

object-oriented programming翻译为中文是面向对象程序设计即面向对象编程

面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式。

它将程序的组织方式从传统的以函数为中心转变为以对象为中心。

在面向对象编程中,我们通过创建类来定义对象的特征和行为。

2.什么是类

类即分类。

古语云:物以类聚,人以群分。

日常生活中,我们会习惯性的对事物进行分类。

【人类】

根据人的性别,我们将人分为男人和女人。
反过来,我们也将男人和女人统称为人类。

【车类】

按照车身类型,我们将车分为轿车、SUV、跑车、货车、客车。
反过来,我们也将轿车、SUV、跑车、货车、客车统称为车类。

【中文释义】

类是对一类事物的概括,是许多相似事物的综合。

注意这些事物各不相同,但具有一些共同的特征或行为。

【Python中的类】

在面向对象编程中,类定义了一组共同属性和方法的集合。

类可以看作是对象的模板或者蓝图,它描述了对象的特征和行为。

一个类可以创建多个对象,每个对象都具有相同的属性和方法,但是它们的具体值可能不同。

3.什么是对象

类是对一类事物的概括,是许多相似或相同事物的综合。

类里的每一个具体事物或每个单独的个体就是对象。

类是对象的模板,对象是类的实例。

4.如何描述对象

从静态和动态2个方面来描述一只大雁。

【静态-从外观上来说】

根据物种分类法,雁类可以分为灰雁、白额雁、小雁、玄鹅。
这些雁的种类虽然不同,但都具备了喙、翅膀和爪等属性。

-喙
-翅膀
-爪子

【动态-从行为上来说】

雁都有觅食、飞行、睡觉等行为。

  • 觅食
  • 飞行
  • 睡觉

5.对象的属性和方法

在这里插入图片描述

【属性】

对象的静态部分称为属性。

属性是静止的,是对象客观存在的。

例如大雁的喙,翅膀、爪子就是大雁的属性。

【方法】

对象的动态部分称为方法。

方法是动态的,是一种行为或者动作。

例如大雁的觅食、飞翔、睡觉就是大雁的方法。

在这里插入图片描述

【备注】

图片来源于明日科技《零基础学Python》。

下面讲两个例子来理解类与对象。

【学生类】

  • 类名:学生类
  • 属性:姓名、年龄、班级、成绩
  • 行为:学习、考试、休息
  • 对象:一个有具体姓名、年龄、班级的学生

【车类】

  • 类名:车类
  • 属性:车型、颜色、长度
  • 行为:前进、刹车、倒车
  • 对象:一辆各项属性都明确的汽车

6.Python中的类

Python中的最典型的类是数据类型。

不同的数据类型属于不同的类。

  1. 整数类
  2. 浮点数类
  3. 字符串类
  4. 布尔类型
  5. 列表类
  6. 元组类
  7. 字典类
  8. 集合类

7.type()函数查看数据类型

使用内置函数type查看数据类型:

# 1、2、3 属于整数(int)类
print(type(1))
print(type(2))
print(type(3))
# '1'、'2'、'3' 属于字符串(str)类
print(type('1'))
print(type('2'))
print(type('3'))

【终端输出】

<class 'int'>
<class 'int'>
<class 'int'>
<class 'str'>
<class 'str'>
<class 'str'>

运行上面的代码,终端显示的结果为:<class 'int'><class 'str'>

class[klɑːs]:类,班级。

class 在的中文释义是类别的意思,在Python中就代表类。

<class 'int'>表示类别为整数即整数类。

<class 'str'>表示类别为字符串即字符串类。

整数类

1 2 3 这些数据都属于整数(int)类,虽然值各不一样,但都有能进行加减运算的相同点。

字符串类

'1' '2' '3'这些数据都属于字符串(str)类,虽然值各不一样,但都有能进行拼接的相同点。

8.类在Python中的应用

假设我们正在开发一个Web应用程序,现在需要设置一个模块来管理访问网站的用户。

我们可以根据需求和功能来确定类名、对象、属性和方法。

  • 类名:用户类
  • 属性:用户名、密码
  • 方法:注册新用户、验证用户身份、更新用户信息
  • 对象:一个各项属性都明确的用户

【思路分析】

类名:创建一个名为User的类,用于表示用户。这里的用户是一个抽象的概念,是所有访问网站用户的统称,没有具体指谁。

对象:登录网站的实际用户。这里的用户是真实存在的,它有具体的用户名和登录密码。

属性:用户对象的用户名、密码、电子邮件等都可以作为用户的属性。

方法:定义几个方法实现用户相关的功能。例如注册新用户、验证用户身份、更新用户信息等。

【代码示例】

class User:def __init__(self, username, password):self.username = usernameself.password = password               def register_user(self, username, password):self.username = usernameself.password = password        print(f"用户{username}注册成功." )def validate_user(self, username, password):if self.username == username and self.password == password:print(f"恭喜{username}成功登录!")else:print("您输入的用户名或密码错误。")def update_user_code(self, username, password):if self.username == username:self.password = password            print(f"用户{username}的登录密码为{password}!")else:print("无效用户名。")# 实例化一个用户对象
user = User('张三', '1234')# 调用注册新用户方法
user.register_user('张三', '1234')# 调用验证用户身份方法
user.validate_user('张三', '1234')# 调用更新用户信息方法
user.update_user_code('张三', '6666')

【终端输出】

用户张三注册成功.
恭喜张三成功登录!
用户张三的登录密码为6666!

【代码解析】

上面的代码创建了一个名为User的类,它有一个初始化方法__init__,在这个方法中,我们可以给对象的属性赋初值。

在register_user方法中,用户可以注册新用户,该方法接受两个参数:用户名和密码,将这两个参数分别赋值给self.username和self.password属性,并打印出注册成功的信息。

validate_user方法用于验证用户的身份,接受两个参数:用户名和密码,如果输入的用户名和密码与对象的属性值相匹配,则打印登录成功的信息,否则打印用户名或密码错误的信息。

update_user_code方法用于更新用户的密码,接受两个参数:用户名和新密码,如果输入的用户名与对象的属性值相匹配,则将新密码赋值给self.password属性,并打印出更新成功的信息,否则打印无效用户名的信息。

在上面代码中,首先实例化了一个用户对象user,用户名为张三,密码为1234

然后依次调用了注册新用户方法、验证用户身份方法和更新用户信息方法,分别传入相应的参数。

上面的代码仅做了解,后面的章节会详细的介绍相关知识。

9.总结

在这里插入图片描述


http://www.ppmy.cn/news/1049082.html

相关文章

9. 回文数

9. 回文数 给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。 例如&#xff0c;121 是回文&a…

路由跳转--编程式导航

简介 除了使用 创建 a 标签来定义导航链接&#xff0c;我们还可以通过编程式导航实现导航。所谓编程式导航指的是不通过router-link跳转&#xff0c;而是借助 router 的实例&#xff0c;通过代码的方式跳转。 示例&#xff1a; App.vue <template><div id"ap…

机器视觉之反向投影(Back Projection)

反向投影&#xff08;Back Projection&#xff09;是一种图像处理技术&#xff0c;通常用于目标跟踪、图像分割和对象检测等应用中。它的基本思想是将一个模板或感兴趣的区域在图像中的像素映射回到一个空间中&#xff0c;以便在该空间中查找目标对象。反向投影通常与直方图投影…

实验四 SD 卡启动盘制作

【实验目的】 掌握 SD 卡启动盘的制作方法 【实验环境】 FS4412 实验平台 【实验步骤】 烧写工具默认从 0 扇区开始烧写&#xff0c;这里我们自己在 uboot 之前放一个512 字节的空镜像 将资料中“u-boot 镜像”中的 u-boot-fs4412.bin 拷贝到 ubuntu 的家目录下 在终端输…

2023.8 - java - 条件语句

Java 条件语句 - if...else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下&#xff1a; if(布尔表达式) {//如果布尔表达式为true将执行的语句 }public class Test {public stati…

前端vue自定义柱形图 选中更改柱形图颜色及文字标注颜色

随着技术的发展&#xff0c;开发的复杂度也越来越高&#xff0c;传统开发方式将一个系统做成了整块应用&#xff0c;经常出现的情况就是一个小小的改动或者一个小功能的增加可能会引起整体逻辑的修改&#xff0c;造成牵一发而动全身。 通过组件化开发&#xff0c;可以有效实现…

Java实现将内容写到文件里面

目录 1 实现 1 实现 String appendLog "";File logFile new File(logFileName);// append file contentFileOutputStream fos null;try {fos new FileOutputStream(logFile, true);fos.write(appendLog.getBytes("utf-8"));fos.flush();} catch (Ex…

LeetCode--HOT100题(34)

目录 题目描述&#xff1a;94. 二叉树的中序遍历&#xff08;简单&#xff09;题目接口解题思路1代码解题思路2代码 PS: 题目描述&#xff1a;94. 二叉树的中序遍历&#xff08;简单&#xff09; 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 LeetCode做…