Python类与对象详解,掌握属性、方法、继承与封装
本文面向Python初学者,系统讲解Python类与对象的使用方法及面向对象编程基础。内容涵盖类的定义、对象创建、实例属性与方法、类属性与类方法、继承、多态、封装、魔法方法及实战案例。通过实例讲解和分步操作,帮助读者快速掌握Python面向对象编程,提高代码复用性和可维护性。
正文教程
一、类与对象基础
# 定义类
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
# 创建对象
p1 = Person("Tom", 20)
print(p1.name, p1.age) # 输出 Tom 20
技巧:
__init__方法用于初始化对象属性
二、实例方法与类属性
class Person:
species = "Homo sapiens" # 类属性
def __init__(self, name):
self.name = name # 实例属性
def greet(self):
print(f"Hello, {self.name}!")
p1 = Person("Alice")
p1.greet() # 输出 Hello, Alice!
print(Person.species) # 输出 Homo sapiens
技巧:实例方法操作实例属性,类属性用于共享数据
三、继承(Inheritance)
class Student(Person):
def __init__(self, name, grade):
super().__init__(name)
self.grade = grade
s1 = Student("Bob", "A")
print(s1.name, s1.grade) # 输出 Bob A
技巧:
super()调用父类构造方法,实现继承
四、多态(Polymorphism)
class Teacher(Person):
def greet(self):
print(f"Welcome, {self.name}, teacher!")
people = [Student("Bob", "A"), Teacher("Mr. Smith")]
for person in people:
person.greet() # 自动调用各自的greet方法
技巧:同一个接口调用不同类的实现,实现灵活性
五、封装(Encapsulation)
class BankAccount:
def __init__(self, balance):
self.__balance = balance # 私有属性
def deposit(self, amount):
self.__balance += amount
def get_balance(self):
return self.__balance
account = BankAccount(1000)
account.deposit(500)
print(account.get_balance()) # 输出 1500
技巧:私有属性和方法通过
__实现封装,保护数据安全
六、魔法方法(Magic Methods)
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"Point({self.x}, {self.y})"
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
p1 = Point(1,2)
p2 = Point(3,4)
print(p1 + p2) # 输出 Point(4, 6)
技巧:魔法方法如
__str__、__add__可自定义对象行为
七、实用技巧总结
类封装属性与方法,实现数据与行为统一
使用继承和多态提升代码复用性
封装私有属性保护数据安全
魔法方法自定义对象操作行为
面向对象编程结合实际项目,提高可维护性