Python 面向对象(1)

 软件编程的实质是将我们的思维转变成计算机能够识别语言的一个过程。

目录

面向过程

面向对象

理解面向对象

面向过程:

面向对象:

面向对象的特点

完成需求时:

类的设计

类与对象的关系

创建类

设计类

类的介绍

格式

创建类实例

定义属性

定义方法

实例化对象

实例化一个对象

多个对象间关系

访问对象的属性和方法

访问属性

访问方法

总结


面向过程

自上而下顺序执行,逐步求精:

其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;

各模块之间的关系尽可能简单,在功能上相对独立

每一模块内部均是由顺序、选择和循环三种基本结构组成;

其模块化实现的具体方法是使用子程序。

程序流程在写程序时就已决定。

面向对象

把数据及对数据的操作方法放在一起,作为一个相互依存的整体——对象。

对同类对象抽象出其共性,形成类。

类中的大多数数据,只能用本类的方法进行处理。

类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。

程序流程由用户在使用中决定。

理解面向对象

面向对象是相对面向过程而言

面向对象和面向过程都是一种思想

面向过程:

强调的是功能行为

关注的是解决问题需要哪些步骤

面向对象:

将功能封装进对象,强调具备了功能的对象

关注的是解决问题需要哪些对象

面向对象是基于面向过程的

面向对象的特点

是一种符合人们思考习惯的思想

可以将复杂的事情简单化

将程序员从执行者转换成了指挥者

完成需求时:

先要去找具有所需功能的对象来用。

如果该对象不存在,那么创建一个具有所需功能的对象。

类的设计

只关心3样东西

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

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

行为(功能):跑(run)、跳(jump)

类与对象的关系

Python中描述事物通过类的形式体现,类具体概念上的定义。

对象即是该类事物实实在在存在的个体.

创建类

设计类

类名:见名知意,首字母大写,其他遵循驼峰原则

属性:见名知意,其他遵循驼峰原则

行为(方法/功能):见名知意,其他遵循驼峰原则

根据以上原则设计一个人类,

如下:

类名:Person
属性:gender age height weight hobby
行为:吃饭 跑步 走路 刷短视频

类的介绍

一种数据类型,本身并不占内存空间,跟所学的number、string、boolean等类似。

用类创建实例化对象(变量),对象占内存空间。

格式

class 类名(父类列表):
    属性
    行为

创建类实例

object:基类,超类,所有类的父类;一般没有需要继承的父类就写object

示例如下:

class Person(object):
    pass

定义属性

定义属性也就是定义类中的变量

示例如下:

class Person(object):
    # 定义属性(定义变量)
    name = ''
    age = 0
    gender = 0
    height = 0
    weight = 0

定义方法

定义类中的函数。根据类的设计写了三个方法分别是:跑步、吃什么、看什么。

注意:方法的参数必须以self为第一个参数,self代表类的实例(某个对象)。

示例如下:

def run(self):
    print('跑步')

def eat(self, food):
    print('吃', food)

def look(self, name):
    print('看%s' % name)

实例化对象

通过类来实例化对象,然后可通过对象来帮助我们实现想要的功能。

实例化一个对象

示例如下:

person1 = Person()
print(person1)

执行结果:

<__main__.Person object at 0x0000017659E997C8>

多个对象间关系

同一个类实例化多个对象,虽然都是同一个类实例化的对象,但并不是同一个对象。

示例如下:

# 实例化一个对象
person1 = Person()
print(person1)
print(id(person1))

# 再实例化一个对象
person2 = Person()
print(person2)
print(id(person2))

执行结果:

<__main__.Person object at 0x000001E595589808>
2085564749832
<__main__.Person object at 0x000001E595589848>
2085564749896

通过打印可看出它们不是一个对象。

访问对象的属性和方法

访问属性

格式:对象名.属性名

赋值:对象名.属性名 = 新的值

示例如下:

p1 = Person()
p1.name = '张三'
p1.age = 18
p1.gender = '男'
p1.height = 180
p1.weight = 80
print(p1.name, p1.age, p1.gender, p1.height, p1.weight)

# 执行结果
# 张三 18 男 180 80

访问方法

格式:对象名.方法名(参数列表)

开始访问之前创建类时设定的三个方法。

示例如下:

p1.run()
p1.eat('苹果')
p1.look('短视频')

# 执行结果
# 跑步
# 吃苹果
# 看短视频

表示为一个人先跑了一会步,之后开始吃苹果看短视频。

总结

本篇主要介绍了面向过程与面向对象的一些概念,类的设计、实例化对象及访问对象属性和方法。

相关推荐

  1. python学习】面向对象编程1

    2023-12-19 23:50:04       53 阅读
  2. python面向对象反射

    2023-12-19 23:50:04       77 阅读
  3. Python面向对象编程

    2023-12-19 23:50:04       65 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-19 23:50:04       106 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-19 23:50:04       116 阅读
  3. 在Django里面运行非项目文件

    2023-12-19 23:50:04       95 阅读
  4. Python语言-面向对象

    2023-12-19 23:50:04       103 阅读

热门阅读

  1. 微服务组件Gateway的学习

    2023-12-19 23:50:04       68 阅读
  2. c-Myc 抑制剂 2173505-97-8在科研领域的应用

    2023-12-19 23:50:04       62 阅读
  3. 4-Docker命令之docker history

    2023-12-19 23:50:04       52 阅读
  4. springbootjpa中@Modifying的用法

    2023-12-19 23:50:04       68 阅读
  5. mysql并发连接数设置

    2023-12-19 23:50:04       56 阅读
  6. 两数组交集算法(leetcode第349题)

    2023-12-19 23:50:04       65 阅读
  7. 面试算法62:实现前缀树

    2023-12-19 23:50:04       63 阅读
  8. 网络 / day03 作业

    2023-12-19 23:50:04       61 阅读
  9. petalinux2021.1 手动打包BOOT.BIN

    2023-12-19 23:50:04       54 阅读