温馨提示×

类与对象

面向对象编程是一种重要的编程范式,它允许将数据和行为封装在对象中,以便更好地组织和管理代码。在Python中,一切皆是对象,包括数字、字符串、函数等,而类则是用来创建对象的模板。

定义类和创建对象: 要定义一个类,可以使用关键字class,后面跟着类的名称和冒号。在类中定义的函数称为方法,可以用来操作对象的状态和行为。下面是一个简单的类的例子:

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

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

在上面的例子中,我们定义了一个名为Person的类,它有两个属性name和age,以及一个方法greet用来打印个人信息。接下来,我们可以创建一个Person对象:

p1 = Person("Alice", 30)
p1.greet()  # 输出:Hello, my name is Alice and I am 30 years old.

访问对象的属性可以使用点号操作符,例如p1.name和p1.age。

继承: 一个类可以继承另一个类的属性和方法,这样可以减少重复代码并提高代码的可维护性。在Python中,使用括号指定父类即可实现继承。下面是一个简单的继承的例子:

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def study(self):
        print(f"{self.name} is studying in grade {self.grade}.")

在这个例子中,我们定义了一个Student类继承自Person类,Student类有一个额外的属性grade和一个额外的方法study。我们可以创建一个Student对象并调用它的方法:

s1 = Student("Bob", 25, 5)
s1.greet()  # 输出:Hello, my name is Bob and I am 25 years old.
s1.study()  # 输出:Bob is studying in grade 5.

封装: 封装是面向对象编程的一个重要概念,它将数据和行为封装在对象中,并限制外部代码直接访问对象的属性。在Python中,通过在属性名称前面加上两个下划线可以实现私有属性。下面是一个封装的例子:

class Car:
    def __init__(self, brand, model):
        self.__brand = brand
        self.__model = model

    def get_brand(self):
        return self.__brand

    def get_model(self):
        return self.__model

c1 = Car("Toyota", "Corolla")
print(c1.get_brand())  # 输出:Toyota
print(c1.get_model())  # 输出:Corolla
print(c1.__brand)  # 报错,无法访问私有属性

在上面的例子中,__brand和__model是私有属性,外部代码无法直接访问它们,但可以通过公有方法get_brand和get_model来获取它们的值。

以上是Python面向对象编程的基础知识,希望对你有所帮助。如果想深入学习面向对象编程,可以了解更多关于多态、抽象类、接口等概念。