Python面向对象详解

171 阅读2分钟

面向对象编程(Object-Oriented Programming,简称OOP)是Python语言的核心特性之一。它允许我们创建具有属性(attribute)和行为(method)的对象,这些对象可以代表现实世界中的实体或者概念。

基本概念

类(Class)

  • 类是对象的蓝图。它定义了对象的属性(数据)和方法(函数)。

  • 类使用class关键字定义。

对象(Object)

  • 对象是根据类创建的实例。每个对象都有自己的状态(属性值)和行为(方法)。

属性(Attribute)

  • 属性是类或对象的数据字段。

方法(Method)

  • 方法是与类或对象相关联的函数。

继承(Inheritance)

  • 继承是允许我们创建基于现有类的新类。新类将继承现有类的属性和方法。

多态(Polymorphism)

  • 多态允许不同类的对象对同一消息做出响应。

封装(Encapsulation)

  • 封装是保护对象内部状态(属性)不被外部访问,只能通过定义的方法来访问或修改。

创建和使用类


class Person:

    def __init__(self, name, age):

        self.name = name

        self.age = age

  


    def say_hello(self):

        print(f"你好,我是{self.name},今年{self.age}岁。")

创建对象:


p1 = Person("张三", 30)

p2 = Person("李四", 40)

访问对象的属性和方法:


print(p1.name)  # 输出:张三

print(p1.age)  # 输出:30

p1.say_hello()  # 输出:你好,我是张三,今年30岁。

继承


class Student(Person):

    def __init__(self, name, age, grade):

        super().__init__(name, age)

        self.grade = grade

  


    def study(self):

        print(f"{self.name}正在学习。")

多态


def greet(person):

    person.say_hello()

greet(p1)  # 输出:你好,我是张三,今年30岁。

greet(p2)  # 输出:你好,我是李四,今年40岁。

封装

通常,我们使用private(私有)标识符来表示不应该直接访问的属性和方法。在Python中,通常使用双下划线前缀,如__name


class Car:

    def __init__(self, brand, model):

        self.__brand = brand

        self.__model = model

  


    def get_brand(self):

        return self.__brand

  


    def set_brand(self, brand):

        self.__brand = brand

以上是Python面向对象编程的基本介绍。希望这能帮助你更好地理解Python的面向对象特性。有更多问题,欢迎继续提问。