趣味解读Python面向对象编程 (类和对象)

简介: 趣味解读Python面向对象编程 (类和对象)

一、面向对象简介


考虑现实生活中,我们的思维方式是放在学生这个个人上,是学生做了自我介绍。而不是像我们刚刚写出的代码,先有了介绍的行为,再去看介绍了谁。


用我们的现实思维方式该怎么用程序表达呢?

面向过程:根据业务逻辑从上到下写代码。

面向对象:将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程。


面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程的思路是将数据与函数按照执行的逻辑顺序组织在一起,数据与函数分开考虑。

今天来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)。


面向对象编程的2个非常重要的概念:类和对象。

对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另外一个新的概念——类。

类就相当于制造飞机时的图纸,用它来进行创建的飞机就相当于对象。


二、分析类与对象


1. 类

物以类聚,人以群分。

具有相似内部状态和运动规律的实体的集合(或统称为抽象)。

具有相同属性和行为事物的统称。

类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在,一个类可以找到多个对象。

image.png


2. 对象

# 某一个具体事物的存在 ,在现实世界中可以是看得见摸得着的。
# 可以是直接使用的

image.png

3. 类和对象之间的关系

image.png

小总结:类就是创建对象的模板。


4. 区分类和对象

# 奔驰smart 类

# 张三的那辆奔驰smart 对象

# 水果 类

# 苹果 类

# 红苹果 类 红富士苹果 类

# 我嘴里吃了一半的苹果 对象


5. 类的构成

类(Class) 由3个部分构成

类的名称:类名

类的属性:一组数据

类的方法:允许对对象进行操作的方法 (行为)


举例:

1)人类设计,只关心3样东西:

事物名称(类名):人(Person)

属性:身高(height)、年龄(age)

方法(行为/功能):跑(run)、打架(fight)

2)狗类的设计

类名:狗(Dog)

属性:品种 、毛色、性别、名字、 腿儿的数量

方法(行为/功能):叫 、跑、咬人、吃、摇尾巴

image.png

6. 类的抽象

如何把日常生活中的事物抽象成程序中的类?

拥有相同(或者类似)属性和行为的对象都可以抽像出一个类。


方法:一般名词都是类(名词提炼法)

<1> 坦克发射3颗炮弹轰掉了2架飞机

坦克 --> 可以抽象成类。

炮弹 --> 可以抽象成类。

飞机 --> 可以抽象成类。

<2> 小明在公车上牵着一条叼着热狗的狗

小明 --> 人类。

公车 --> 交通工具类。

热狗 --> 食物类。

狗 --> 狗类。

<3>【想一想】如下图中,有哪些类呢?

image.png

说明:



子弹

手榴弹

刀子

箱子

<4>【想一想】如下图中,有哪些类呢?

image.png

说明:

向日葵

类名:xrk

属性:颜色、品类

行为:放阳光


豌豆

类名:wd

属性:颜色 、发型、血量

行为:发炮、摇头


坚果:

类名:jg

属性:血量、类型

行为:阻挡


僵尸:

类名:js

属性:颜色、血量、 类型、速度

行为:走、跑跳、吃、死


三、项目


1. 定义类

定义一个类,格式如下:

class 类名:    方法列表


demo:定义一个Cat类

# 定义类class Cat:   # 方法   def eat(self):       print("猫在吃鱼....")
   def drink(self):       print("猫在喝可乐...")

说明:

定义类时有2种:新式类和经典类,上面的Cat为经典类,如果是Cat(object)则为新式类

类名的命名规则按照"大驼峰"。


2. 创建对象

Python中,可以根据已经定义的类去创建出一个个对象。

创建对象的格式为:

对象名 = 类名()


创建对象demo:

# 定义一个类class Cat:   # 属性   # 方法   def eat(self):       print("猫在吃鱼....")
   def drink(self):       print("猫在喝可乐...")
# 根据类,创建一个对象tom = Cat()


3. 调用对象的方法

class Cat:   # 属性   # 方法   def eat(self):       print("猫在吃鱼....")
   def drink(self):       print("猫在喝可乐...")
# 创建了一个对象tom = Cat()tom.eat() # 调用对象的eat方法tom.drink()

运行结果,如图所示:

image.png


4. 给对象添加属性

class Cat:    # 属性    # 方法    def eat(self):        print("猫在吃鱼....")
    def drink(self):        print("猫在喝可乐...")
# 创建了一个对象tom = Cat()
# 给对象tom添加了一个属性,叫name,里面的值是"汤姆"tom.name = "汤姆"
# 给对象tom添加了一个属性,叫age,里面的值是30tom.age = 30
# 调用tom的方法tom.eat()tom.drink()print(tom.name)print(tom.age)

运行结果,如图所示:

image.png


5. 通过方法获取对象属性。

运行结果,如图所示:

image.png


四、总结


本文以生活中的基础现象为切入点,主要介绍了Python的面向对象基础知识,用丰富的案例帮助大家更好的去了解对象,最后以一只猫作为小项目,使用Python编程语言,方便大家增加对类和对象的认识,希望对大家的学习有帮助。

相关文章
|
2月前
|
Python
Python面向对象(2)
【10月更文挑战第14天】
Python面向对象(2)
|
2月前
|
设计模式 程序员 C语言
Python面向对象
【10月更文挑战第13天】
Python面向对象
|
2月前
|
索引 Python
python-类属性操作
【10月更文挑战第11天】 python类属性操作列举
23 1
|
2月前
|
Java C++ Python
Python基础---类
【10月更文挑战第10天】Python类的定义
26 2
|
2月前
|
Java C# Python
Python学习七:面向对象编程(中)
这篇文章是关于Python面向对象编程的中级教程,涵盖了析构函数、对象的三大特征(封装、继承、多态)、类属性与实例属性、以及类方法与静态方法的对比。
25 2
|
2月前
|
设计模式 安全 JavaScript
Python学习八:面向对象编程(下):异常、私有等
这篇文章详细介绍了Python面向对象编程中的私有属性、私有方法、异常处理及动态添加属性和方法等关键概念。
26 1
WK
|
2月前
|
Python
Python类命名
在Python编程中,类命名至关重要,影响代码的可读性和维护性。建议使用大写驼峰命名法(如Employee),确保名称简洁且具描述性,避免使用内置类型名及单字母或数字开头,遵循PEP 8风格指南,保持项目内命名风格一致。
WK
17 0
|
2月前
|
Java Python
Python学习六:面向对象编程(上)
这篇文章是关于Python面向对象编程的基础知识,包括类和对象的概念、实例方法、属性、self关键字以及魔法方法等。
17 0
|
2月前
|
程序员 开发者 Python
深度解析Python中的元编程:从装饰器到自定义类创建工具
【10月更文挑战第5天】在现代软件开发中,元编程是一种高级技术,它允许程序员编写能够生成或修改其他程序的代码。这使得开发者可以更灵活地控制和扩展他们的应用逻辑。Python作为一种动态类型语言,提供了丰富的元编程特性,如装饰器、元类以及动态函数和类的创建等。本文将深入探讨这些特性,并通过具体的代码示例来展示如何有效地利用它们。
46 0
|
17天前
|
存储 数据挖掘 开发者
Python编程入门:从零到英雄
在这篇文章中,我们将一起踏上Python编程的奇幻之旅。无论你是编程新手,还是希望拓展技能的开发者,本教程都将为你提供一条清晰的道路,引导你从基础语法走向实际应用。通过精心设计的代码示例和练习,你将学会如何用Python解决实际问题,并准备好迎接更复杂的编程挑战。让我们一起探索这个强大的语言,开启你的编程生涯吧!