Python教程-Python 面向对象编程概念

与其他通用编程语言一样,Python 从一开始就是一种面向对象的语言。它允许我们使用面向对象的方法开发应用程序。在 Python中,我们可以轻松创建和使用类和对象。
面向对象编程范例的核心思想是使用类和对象来设计程序。对象与现实世界中的实体相关,例如书、房子、铅笔等。面向对象编程的概念侧重于编写可重复使用的代码,它是通过创建对象来解决问题的广泛技术。
面向对象编程系统的主要原则如下:
- 类(Class)
- 对象(Object)
- 方法(Method)
- 继承(Inheritance)
- 多态(Polymorphism)
- 数据抽象(Data Abstraction)
- 封装(Encapsulation)
类(Class)
类可以定义为对象的集合。它是一个逻辑实体,具有一些特定的属性和方法。例如:如果你有一个员工类(employee class),那么它应该包含一个属性和方法,如电子邮件地址、姓名、年龄、薪水等。
语法
class ClassName:
<statement-1>
.
.
<statement-N>
对象(Object)
对象是具有状态和行为的实体。它可以是任何现实世界中的对象,如鼠标、键盘、椅子、桌子、笔等。
在Python中,一切都是对象,几乎每个对象都有属性和方法。所有函数都有一个内置属性__doc__
,它返回函数源代码中定义的文档字符串。
当我们定义一个类时,需要创建一个对象来分配内存。请考虑以下示例。
示例:
class car:
def __init__(self,modelname, year):
self.modelname = modelname
self.year = year
def display(self):
print(self.modelname,self.year)
c1 = car("Toyota", 2016)
c1.display()
输出:
Toyota 2016
在上面的示例中,我们创建了名为car
的类,它具有两个属性modelname
和year
。我们创建了一个c1
对象来访问类属性。c1
对象将为这些值分配内存。我们将在下一个教程中更多地了解类和对象。
方法(Method)
方法是与对象关联的函数。在Python中,方法不仅限于类实例。任何对象类型都可以具有方法。
继承(Inheritance)
继承是面向对象编程中最重要的方面,它模拟了继承的现实世界概念。它指定了子对象会继承父对象的所有属性和行为。
通过使用继承,我们可以创建一个类,该类使用另一个类的所有属性和行为。新类称为派生类或子类,而被继承属性的类称为基类或父类。
它提供了代码的可重用性。
多态(Polymorphism)
多态包含两个词“poly”和“morphs”。Poly意味着许多,morph意味着形状。通过多态,我们了解到一个任务可以以不同的方式执行。例如 - 你有一个动物类,所有动物都会说话。但是它们说话的方式不同。在这里,“说话”行为在某种程度上是多态的,并且取决于动物。因此,抽象的“动物”概念实际上并不“说话”,但具体的动物(如狗和猫)对“说话”操作有一个具体的实现。
封装(Encapsulation)
封装也是面向对象编程的重要方面。它用于限制对方法和变量的访问。在封装中,代码和数据被封装在一个单一的单元中,以防止意外修改。
数据抽象(Data Abstraction)
数据抽象和封装通常被视为同义词。它们几乎是同义词,因为数据抽象是通过封装实现的。
抽象用于隐藏内部细节,仅显示功能。抽象化某物意味着为事物赋予名称,以便名称捕捉函数或整个程序执行的核心。
面向对象 vs. 面向过程编程语言
面向对象编程与面向过程编程之间的区别如下:
索引 | 面向对象编程 | 面向过程编程 |
---|---|---|
1. | 面向对象编程是一种问题解决方法,用于通过使用对象来进行计算。 | 面向过程编程使用一系列指令逐步进行计算。 |
2. | 它使开发和维护更加容易。 | 在面向过程编程中,当项目变得冗长时,难以维护代码。 |
3. | 它模拟了现实世界的实体。因此,可以通过面向对象编程轻松解决现实世界的问题。 | 它不模拟现实世界。它基于分成小部分的一步一步指令进行工作。 |
4. | 它提供了数据隐藏。因此,比过程化语言更安全。无法从任何地方访问私有数据。 | 过程化语言没有提供数据绑定的合适方式,因此安全性较低。 |
5. | 面向对象编程语言的示例包括C++、Java、.Net、Python、C#等。 | 面向过程编程语言的示例包括C、Fortran、Pascal、VB等。 |