面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序中的数据和操作数据的方法组织在一起,形成对象。
Python 是一种支持面向对象编程的语言,以下是关于 Python 面向对象编程的基本概念和示例:
类和对象
类(Class): 类是对象的模板,用于定义对象的属性(属性是对象的特征)和方法(方法是对象的行为)。可以将类看作是一种自定义数据类型。
class MyClass:
def __init__(self, name):
self.name = name
def greet(self):
return f"Hello, {self.name}!"
对象(Object): 对象是类的实例,通过实例化类来创建对象。对象具有类定义的属性和方法。
obj = MyClass("Alice")
print(obj.name) # 输出: Alice
print(obj.greet()) # 输出: Hello, Alice!
属性和方法
属性(Attribute): 属性是对象的特征,可以是数据或函数。
class Person:
def __init__(self, name, age):
self.name = name # 数据属性
self.age = age
def greet(self):
return f"Hello, I'm {self.name}, {self.age} years old." # 函数属性(方法)
方法(Method): 方法是与对象相关联的函数,用于执行特定的操作。
person = Person("Bob", 30)
print(person.name) # 输出: Bob
print(person.greet()) # 输出: Hello, I'm Bob, 30 years old.
继承和多态
继承(Inheritance): 继承是一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法,可以重用父类的代码并添加新的功能。
class Student(Person):
def __init__(self, name, age, student_id):
super().__init__(name, age) # 调用父类的构造方法
self.student_id = student_id
def study(self):
return f"{self.name} is studying."
多态(Polymorphism): 多态性是指相同的方法可以在不同类的对象中有不同的行为。Python 中通过方法重写实现多态性。
def introduce(person):
return person.greet() # 多态调用,不同对象的 greet 方法有不同的行为
student = Student("Alice", 25, "S12345")
print(introduce(student)) # 输出: Hello, I'm Alice, 25 years old.