Python面向对象编程 (OOP)入门解析教程

编程是一门艺术。和艺术一样,选择合适的画笔和颜料对于创作出最好的作品至关重要。 Python面向对象编程就是这样一种技能。

选择正确的编程语言是任何项目的关键部分,它可以导致流畅和愉快的开发或彻底的噩梦。因此,最好为您的用例使用最适合的语言。

这是在Python中学习面向对象编程的主要原因,Python也是最流行的编程语言之一。让我们来学习!

一个示例Python程序

在深入探讨这个问题之前,让我们提出一个问题:你有没有写过像下面这样的Python程序?

secret_number = 20

while True:

number = input('Guess the number: ')

try:

number = int(number)

except:

print('Sorry that is not a number')

continue

if number != secret_number:

if number > secret_number:

print(number, 'is greater than the secret number')

elif number < secret_number:

print(number, 'is less than the secret number')

else:

print('You guessed the number:', secret_number)

break

此代码是一个简单的数字猜测器。尝试将其复制到 Python 文件中并在您的系统中运行它。它完美地实现了它的目的。

但是这里出现了一个大问题:如果我们要求您实现一个新功能怎么办?它可能很简单——例如:

“如果输入是密码的倍数,给用户一个提示。”

随着特征数量的增加以及嵌套条件的总数的增加,程序会迅速变得复杂和繁重。

这正是面向对象编程试图解决的问题。

学习Python OOP的要求

在开始面向对象编程之前,我们强烈建议您牢牢掌握Python基础知识。

对被视为“基本”的主题进行分类可能很困难。因此,我们设计了一份备忘单,其中包含在Python中学习面向对象编程所需的所有主要概念。****

  • 变量: 指向特定对象的符号名称(我们将通过文章了解对象的含义)。
  • 算术运算符: 加法 (+)、减法 (-)、乘法 (*)、除法 (/)、整数除法 (//)、模 (%)。
  • 内置数据类型: 数字(整数、浮点数、复数)、序列(字符串、列表、元组)、布尔值(真、假)、字典和集合。
  • 布尔表达式: 结果为假的表达式。
  • 条件: 评估布尔表达式并根据结果进行一些处理。由if/else语句处理。
  • 循环: 重复执行代码块。它可以是forwhile循环。
  • 功能: 有组织和可重用的代码块。您可以使用关键字def创建它们。
  • 参数: 传递给函数的对象。例如: sum([1, 2, 4])
  • 运行Python脚本:打开终端或命令行并输入“python <文件名>”。
  • 打开Python脚本:打开终端并键入pythonpython3(取决于您的系统)。

现在您已经清楚地了解了这些概念,您可以继续理解面向对象编程。

什么是Python中的面向对象编程?

面向对象编程 (OOP) 是一种编程范式,我们可以在其中将复杂问题视为对象。

范式是为解决问题提供基础的理论。

因此,当我们谈论OOP时,我们指的是一组用于解决对象问题的概念和模式。

Python中的对象是数据(属性)和行为(方法)的单一集合。您可以将物体视为您周围真实的事物。例如,考虑计算器:

Python面向对象编程 (OOP) 初学者指南-2 初学者指南-2")

计算器可以是一个对象

您可能会注意到,数据(属性)始终是名词,而行为(方法)始终是动词。

这种划分是面向对象编程的核心概念。您构建存储数据并包含特定类型功能的对象。

为什么我们在Python中使用面向对象编程?

OOP允许您创建安全可靠的软件。许多Python框架和库使用这种范式来构建它们的代码库。一些示例是Django、Kivy、pandas、NumPy和TensorFlow。

让我们看看在Python中使用OOP的主要优势。

Python OOP的优点

以下原因将使您选择在Python中使用面向对象编程。

所有现代编程语言都使用OOP

这种范式与语言无关。如果您在Python中学习了OOP,您将能够在以下方面使用它:

所有这些语言要么是本机面向对象的,要么包含面向对象功能的选项。如果你想在Python之后学习它们中的任何一个,它会更容易——你会发现处理对象的语言之间有许多相似之处。

OOP使您可以更快地编码

更快的编码并不意味着编写更少的代码行。这意味着您可以在更短的时间内实现更多功能,而不会影响项目的稳定性。

面向对象编程允许您通过实现抽象来重用代码。这一原则使您的代码更加简洁易读。

您可能知道,程序员花在阅读代码上的时间比编写代码的时间多得多。这就是易读性始终比尽快推出功能更重要的原因。

代码不清晰导致生产力下降

代码不清晰导致生产力下降

稍后您将看到有关抽象原则的更多信息。

OOP帮助您避免意大利面条式代码

还记得本文开头的猜数程序吗?

如果您继续添加功能,将来您将拥有许多嵌套的if语句。这种无休止的代码行缠结称为意大利面条式代码,您应该尽可能避免使用它。

OOP为我们提供了压缩对象中所有逻辑的可能性,因此避免了嵌套的长段if 。

OOP改善您对任何情况的分析

一旦您获得了一些OOP的经验,您就能够将问题视为小而具体的对象。

这种理解导致快速的项目初始化。

结构化编程与面向对象编程

结构化编程是初学者最常用的范式,因为它是构建小程序的最简单方法。

它涉及按顺序运行Python程序。这意味着你给计算机一个任务列表,然后从上到下执行它们。

让我们看一个带有咖啡店程序的结构化编程示例。

small = 2

regular = 5

big = 6

user_budget = input('What is your budget? ')

try:

user_budget = int(user_budget)

except:

print('Please enter a number')

exit()

if user_budget > 0:

if user_budget >= big:

print('You can afford the big coffee')

if user_budget == big:

print('It\'s complete')

else:

print('Your change is', user_budget - big)

elif user_budget == regular:

print('You can afford the regular coffee')

print('It\'s complete')

elif user_budget >= small:

print('You can buy the small coffee')

if user_budget == small:

print('It\'s complete')

else:

print('Your change is', user_budget - small)

上面的代码充当咖啡店供应商。它会询问你的预算,然后“卖”给你你能买到的最大的咖啡。

尝试在终端中运行它。它将根据您的输入逐步执行。

这段代码运行良好,但我们有三个问题:

  1. 它有很多重复的逻辑。
  2. 它使用许多嵌套的if条件。
  3. 阅读和修改会很困难。<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WPHunter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值