≡菜单

在Python中快速启动面向对象编程的5个示例

OOP代表面向对象编程。此概念是解决编程问题的一种方式,其中将实际对象的属性和行为打包为代码中的单个实体。

这种编码方式使模块化和缩放问题最少。

Python是一种动态类型的高级解释型编程语言。 Python支持多种OOP功能,其中包括:

  • 类和对象
  • 封装形式
  • 遗产
  • 多态性

1. Python中的类

类是现实生活中实体的蓝图。在Python中,它是使用class关键字创建的,如以下代码片段所示。

类Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

在上面:

  • 类– Here is a 类named Person.
  • 构造函数的默认名称为__init__。它们是在创建类的对象时隐式调用的函数。
  • 包括构造函数的所有实例方法的第一个参数均为self。
  • self引用调用该方法时被引用的实例。
  • 名称和年龄是实例变量。

如果您不熟悉Python,请参考以下内容: Python入门教程–变量,字符串,函数示例

2. Python中的对象

定义Person类后,您可以使用它通过传递值来创建实例,如下所示。

类Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

if __name__ == "__main__":
    p = Person("ranjeeta", 23)
    print(p.name)

在上面:

  • p –是我们根据Person类创建的对象的名称
  • 即使该类具有三个参数(自我,姓名,年龄),我们’就像我们一样,在创建对象时,仍然只传递名称和年龄’这里不需要自我介绍。它’s implicit.
  • 创建对象后,可以使用点引用该对象的属性。例如,p.name指的是该特定对象的名称属性

3. Python中的继承

顾名思义,这个概念是关于从现有实体继承属性。这增加了代码的可重用性。单,多和多级继承是Python支持的众多类型中的少数。

以下示例显示了如何在python中使用继承:

类Person:
  def __init__(self):
    pass

# Single level inheritance
class Employee(Person):
  def __init__(self):
    pass

# Multi-level inheritance
class Manager(Employee):
  def __init__(self):
    pass

# Multiple  遗产 
class Enterprenaur(Person, Employee):
  def __init__(self):
    pass

在多重继承中,类是在括号内从左到右继承的,这取决于Python的方法解析顺序(MRO)算法。

4.用Python封装

包装数据的概念是使外部世界只能访问暴露的属性。可以隐藏某些属性以减少漏洞。这是数据隐藏的实现。例如,您想从在线站点购买一条裤子。您需要的数据是其成本和可用性。存在的项目数及其位置是您无需担心的信息。因此它是隐藏的。

在Python中,这是通过创建私有,受保护的实例和公共实例的变量和方法来实现的。

私有属性在开始时具有双下划线(__),而受保护的属性具有单下划线(_)。默认情况下,所有其他变量和方法都是公共的。

私有属性只能从该类内部访问,而不能用于子类(如果继承)。受保护的属性可从类内部访问,但也可用于子类。所有这些公共财产限制均已删除。

以下代码片段是此概念的示例:

类Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def _protected_method(self):
        print("protected method")
    def __private_method(self):
        print("privated method")

if __name__ == "__main__":
    p = Person("mohan", 23)
    p._protected_method() # shows a warning
    p.__private_method()  # throws Attribute error saying no such method exists

5. Python中的多态性

这是一个概念,其中函数可以采用多种形式,具体取决于提供给函数的参数数量或参数类型。

类Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def show_salary(self):
        print("Salary is unknown")

class Employee(Person):
    def __init__(self, name, age, salary):
        super().__init__(name, age)
        self.salary = salary
    def show_salary(self):
        print("Salary is", self.salary)

if __name__ == "__main__":
    p = Person("y", 23)
    x = Employee("x", 20, 100000)
    p.show_salary() # Salary is unknown
    x.show_salary() # Salary is 100000

在上面的示例中,super关键字用于调用父类的方法。这两个类都有方法show_salary。根据调用此函数的对象类型,输出会有所不同。

Python也具有内置多态功能。最简单的示例之一是python中的print函数。

print("Hello there", end=" ")
print("I am Aanisha")
print(len([1, 2, 3, 4, 5]))

上面代码的输出将是:

Hello there I am Aanisha
5

在上面的代码片段中:

  • end关键字参数更改了打印功能的功能。因此,它没有以结尾行结束“ Hello There”。
  • 第三行中的len([1、2、3、4、5])返回一个int。打印可以识别数据类型,并将其隐式转换为字符串,然后将其打印到控制台。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个3d捕鱼达人 Sysadmin教程
  2. 50个最常用的3d捕鱼达人命令(包括示例)
  3. 排名前25位的最佳3d捕鱼达人性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的3d捕鱼达人 Find命令示例
  5. 3d捕鱼达人 101 Hacks第二版电子书 3d捕鱼达人 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 1 评论 … 加一 }

  • 特姆齐 三月15,2019,3:15上午

    很棒的文章。我希望您能在Python上写更多的文章,因为这是最受欢迎的语言,不仅适用于Dev,而且适用于测试人员,系统管理员,数据科学家和其他人员。

发表评论