Python 是一门面向对象的编程语言,支持类、对象、封装、继承和多态等面向对象编程特性。
类: 在 Python 中,通过 class 关键字定义一个类,例如:
class MyClass:
# 类的代码块
pass
类通常包含属性和方法两个部分,其中属性是类的成员变量,而方法则是类的成员函数。属性和方法都可以通过 . 运算符进行访问,例如:
class Person:
def __init__(self, name):
self.name = name # 属性
def say_hello(self):
print(f"Hello, {self.name}!") # 方法
person = Person("Tom")
person.say_hello() # 调用方法
print(person.name) # 访问属性
封装:
Python 支持将属性和方法封装起来,使其不被外部直接访问,从而保护数据安全。封装通常通过属性和方法的访问权限来实现,例如:
class Person:
def __init__(self, name, age):
self.__name = name # 私有属性
self.__age = age
def get_name(self):
return self.__name # 公有方法访问私有属性
def set_age(self, age):
if age > 0 and age < 120:
self.__age = age # 公有方法修改私有属性
person = Person("Tom", 18)
print(person.get_name()) # 通过公有方法访问私有属性
person.set_age(20) # 通过公有方法修改私有属性
继承:
Python 支持类的继承,子类可以继承父类的属性和方法,并且可以在此基础上添加自己的属性和方法。子类还可以重写父类的方法以实现不同的行为。例如:
class Animal:
def __init__(self, name):
self.name = name
def say_hello(self):
print(f"{self.name} says hello!")
class Dog(Animal):
def __init__(self, name):
super().__init__(name) # 调用父类构造函数
def bark(self):
print("Woof!")
dog = Dog("Tom")
dog.say_hello() # 继承父类方法
dog.bark() # 子类新增方法
多态:
Python 支持多态,即不同的对象可以对同一消息做出不同的响应。多态可以通过继承和重写实现,也可以通过 Duck Typing 实现。例如:
class Animal:
def say_hello(self):
pass
class Dog(Animal):
def say_hello(self):
print("Woof!")
class Cat(Animal):
def say_hello(self):
print("Meow!")
def greet(animal: Animal): # 接受父类参数
animal.say_hello() # 多态调用方法
dog = Dog()
cat = Cat()
greet(dog) # 多态调用 dog 的 say_hello() 方法
greet(cat) # 多态调用 cat 的 say_hello() 方法