python面向对象编程初学者指南

为了充分利用Python的优势,您需要了解Python如何与面向对象编程(OOP)一起工作。...

Python应用于从Raspberry Pi到机器学习的所有领域。但是,如果您想处理任何大型项目,您需要知道Python如何与面向对象编程(OOP)结合使用。本文将介绍您需要了解的基本知识。

beginner-python-programming

如果你不是真正的编程爱好者,为什么不看看这些最好的montypython草图呢?毕竟,他们确实激发了语言!

等等,python不是真正的语言?

让我们弄清楚一件事:Python是一种真正的编程语言,它很流行,而且正在迅速发展。仅仅因为它读起来像伪代码,而且你可以用它在Pi上编写Minecraft,这并不意味着你应该把它当作一种较低级的语言。

面向对象编程(OOP)是现代软件开发的基石,Python完全可以跟上这一潮流。它可能会做一件或两件事不同于其他主流语言,但不要让你拖延。

本教程将假定您了解Python的基本知识,但我们将在此过程中介绍所有复杂的内容。如果你是Python新手,为什么不看看这些技巧来学习一种新的编程语言,或者看看一个简单的项目,比如用Python读写googlesheets?

python前提条件和设置

在开始之前,您可能希望安装Python开发环境。我们将使用python3.6.5,虽然您可以使用较旧的版本,但是如果您使用的是一个相当新的版本,那么接下来的问题将更少。

如果您还没有虚拟环境,您将希望创建一个虚拟环境,如果未安装PIP for Python(不过,它与大多数现代Python安装一起)。一旦你有了这些设置,你就可以走了。我们开始吧!

python的基础:类

类是OOP的基本构建块。一个班级就像一个计划或蓝图。它们定义对象的特性。例如,如果你有一个汽车类,它可能会说明有四个轮子,至少一个座位和一个引擎。

下面介绍如何使用Python创建类:

class Vehicle: """ This class defines vehicles. """ pass

很简单吧?这里发生了一些事情。注意班上最上面的评论。这是一个称为docstring的特殊注释。它应该解释一下你的代码。通过使用三个引号(“”),可以告诉Python这是一个docstring。

pass关键字告诉Python什么都不做。这是一个特殊的词,你可以把它想象成一个待办事项。它会让你的代码运行,但实际上什么都没做。

如果运行此代码,您将看到不会发生任何事情。您需要实例化类。这实际上意味着基于类中定义的计划去构建对象。您可以创建任意多个副本,每个副本具有不同的属性。以下是您的做法:

red_car = Vehicle()

如果你再运行一次,你会发现什么也没发生。代码工作正常,但您没有让它做任何明显的事情。Vehicle类定义了一辆车的蓝图,最新的一行创建了一个Vehicle对象,并给它起了一个red\u car的名字。

可以**任意数量的对象:

red_car = Vehicle()green_car = Vehicle()blue_car = Vehicle()

让我们再添加一些代码。向Vehicle类添加一个名为\uuuu init \uuuu的方法:

class Vehicle: """ This class defines vehicles. """ def __init__(self, color='plain'): """ Setup some custom car properties """ print('New car made!') self.color = colorred_car = Vehicle()green_car = Vehicle()blue_car = Vehicle()

请特别注意这个初始化方法。它必须以两个下划线开头和结尾。这是Python中的一个特殊方法。当您创建一个新对象时,它会自动被调用。运行此代码将显示“新车**!”三次。

object-oriented programming guide for python

最后,init接受一个名为color的自定义参数。紧跟其后的等号和字符串告诉Python,如果未指定,则将颜色设置为“plain”。您可以修改实例以在创建时设置汽车颜色:

red_car = Vehicle(color='red')green_car = Vehicle(color='green')blue_car = Vehicle(color='blue')

如果打印汽车颜色,您会看到每个实例都有不同的颜色,即使所有三个都是按照相同的规范(类)**的。Python允许您访问几乎任何变量或对象——不允许使用其他语言执行以下操作:

print(red_car.color)print(green_car.color)print(blue_car.color)

object-oriented programming guide for python

这是因为您将颜色指定给自身颜色. Self是Python中的另一个特殊关键字,它引用类的每个特定实例。无论何时使用self,都可以设置或访问该实例特有的数据。例如,这辆红色的汽车有一种红色。

修改\uuuu init \uuuuu方法以将汽车噪音存储在一个变量中:

self.noise = 'Vroooom'

要打印汽车噪音,可以访问噪音变量,就像使用颜色一样,但这不是最好的方法。如果当你开车的时候,你想同时运行一些其他的代码,也许是你还没写的代码呢?或者如果你想在将来改变汽车的驾驶方式呢?通过创建一个函数(也称为方法),您可以严格控制事物的工作方式。将此添加到您的\uuuu init \uuuuuuuu方法下面:

def drive(self): print(self.noise)

您可以非常简单地调用此方法:

red_car.drive()

object-oriented programming guide for python

无论何时调用drive方法,Python都会打印声音。您可以将其展开以执行所有任务,但暂时保持原样。

做得好!到现在为止,你应该已经牢牢掌握了基础知识。您应该能够创建和使用自己的类,每个类都有自己独特的能力和功能。

python中的私有变量呢?

私有对象在大多数其他语言中非常常见。它们只是不能在类外访问的变量或函数。它们可能是需要在使用前满足特殊条件的代码,或者只是为内部使用而设计的。不管是什么原因,实例不能访问私有成员。。。除非你是用Python编写代码。

Python没有私有成员。相反,Python依赖于一个荣誉系统:“我们都是同意的成年人。”Python程序员理解,您可能需要修补类的敏感内部,这没关系,因此任何东西都不应该真正无法访问。

然而,Python确实有一个公认的约定,将某些变量标记为“private”,意思是“这个变量是供内部使用的,您可能不需要碰它。”约定是在变量名前面加下划线:

_some_secret_variable = 42

这是对其他程序员的警告。Python不会阻止您访问它,但是下划线告诉您,它不是设计成这样使用的,您应该继续使用,风险自负。

有时这是Python修补隐藏内容的方法,但是您可能会冒着事情可能无**常工作的风险。

理解python中的继承

继承是减少重复和重用代码的另一种方法。考虑到父级和子级的关系,继承允许子级与父级共享公共代码。让我们实现一个电动汽车,它继承自父代。

将此代码添加到车辆类别以下:

class ElectricCar(Vehicle): """ Electric vehicle class. """ def charge(self): print('Zzz')electric_car = ElectricCar()electric_car.charge()electric_car.noise = 'Whoosh'electric_car.drive()

object-oriented programming guide for python

定义电动汽车后,车辆等级在两个支架内指定。这告诉Python电动车是车辆的孩子。这使它能够访问车辆中提供的所有数据和方法。

电动汽车有其独特的方法。它可以充电(其他车辆无法充电)。通过改变汽车噪音,然后驾驶,你可以看到电动车发出不同的声音,你不必定义驾驶方法。这是因为驱动器是从父级继承的。

进一步扩展python知识

这些例子展示了在Python中OOP是多么容易。我们只讨论了最基本的东西,但一旦你把它们记下来,剩下的就简单了。

如果您希望继续学习Python,或者将这些OOP技能付诸实践,那么为什么不看看Python中的数组和列表,或者让Python和JavaScript进行通信呢?

如果所有这些都让您想要更多,那么不要忘记查看这些最好的网站来学习Python。

  • 发表于 2021-03-24 14:43
  • 阅读 ( 215 )
  • 分类:编程

你可能感兴趣的文章

perl公司(perl)和python(python)的区别

...易读、写和学习。这些程序也很容易测试和调试。Python是初学者的首选编程语言,因为它简单。Python是一种多范例编程语言。它主要支持过程式和面向对象的编程语言。 Python是一种解释语言。因此,每一行都是一个接一个地读...

  • 发布于 2020-10-19 17:38
  • 阅读 ( 219 )

红宝石(ruby)和python(python)的区别

...Rossum设计的。Python因其易于阅读、学习和维护而被认为是初学者的流行语言之一。Python甚至对于复杂的应用程序也很有用。Python有大量的社区支持。它是一种多范式的编程语言。它支持面向对象的编程(OOP),用于使用对象对程...

  • 发布于 2020-10-19 17:41
  • 阅读 ( 342 )

r(r)和python(python)的区别

...语言。它是跨平台、开源的。由于它的简单性,它是最受初学者欢迎的编程语言之一。python程序易于读、写、测试和调试。与R类似,Python也是一种解释语言。程序员可以使用命令行直接发出命令,也可以使用IDE。Python最常见的ID...

  • 发布于 2020-10-20 09:33
  • 阅读 ( 229 )

python(python)和c语言(c language)的区别

...明为整数。Python语法易于学习、阅读和维护。它被认为是初学者开始编程的好语言。 什么是c语言(c language)? C是丹尼斯·里奇在开发UNIX操作系统时发现的一种高级编程语言。它是java、Python、JavaScript等其他编程语言的基础编程语...

  • 发布于 2020-10-24 05:03
  • 阅读 ( 305 )

9个最好的pi编程资源,把你的树莓pi使用

... Chin的refcard深入研究了Java编程。尽管如此,它仍然是初学者友好的。这个refcard涵盖了从设置到Java编程以及测试I/O库的所有内容。因此,带有Java和Raspberry Pi refcard的DZone IoT应用程序提供了全面的软件和硬件概述。DZone的IoT部...

  • 发布于 2021-03-14 03:57
  • 阅读 ( 236 )

初学者最容易学习的6种编程语言

...冶的过程。在任何情况下,这里有六个最简单的编程语言初学者。 ...

  • 发布于 2021-03-16 10:37
  • 阅读 ( 283 )

通过我的5门顶级课程真正学习javascript

... 技能等级——初学者。 ...

  • 发布于 2021-03-17 09:52
  • 阅读 ( 227 )

揭开这个免费电子书现代蟒蛇!

... 对于任何一个掌握基本Python技能、不熟悉面向对象编程的人来说,这本免费电子书是必备的。每一章都包括相关的,一步一步的例子和案例研究,整个电子书形成了一个深入的,工作程序,完全...

  • 发布于 2021-03-20 06:10
  • 阅读 ( 230 )

你应该知道的5种函数式编程语言

... 上面列出的一些语言对初学者来说比其他语言更好。看看我们为初学者提供的最佳编程语言列表。你会注意到这两个列表之间有些交叉。 ...

  • 发布于 2021-03-20 18:46
  • 阅读 ( 624 )

学习c#编程的7个实际原因

...言对新手来说更友好。C#编程是面向对象的,有些人认为初学者更容易理解。 ...

  • 发布于 2021-03-21 18:41
  • 阅读 ( 382 )