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

[目录]

文章目录

  • 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.对象的属性和方法

# 59. python的类与对象-更新_第1张图片

【属性】

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

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

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

【方法】

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

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

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

# 59. python的类与对象-更新_第2张图片

【备注】

图片来源于明日科技《零基础学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[klɑːs]:类,班级。

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

表示类别为整数即整数类。

表示类别为字符串即字符串类。

整数类

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

字符串类

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

8.类在Python中的应用

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

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

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

【思路分析】

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

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

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

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

【代码示例】

class User:
    def __init__(self, username, password):
        self.username = username
        self.password = password               

    def register_user(self, username, password):
        self.username = username
        self.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.总结

# 59. python的类与对象-更新_第3张图片

你可能感兴趣的:(Python基础知识,python,开发语言)