面向对象编程(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的面向对象特性。有更多问题,欢迎继续提问。