欢迎光临
我们一直在努力

Python零基础入门(七)------面向对象编程

前言:

一.面向对象编程核心定义:

一种编程思想,以「类和对象」为核心,将数据(属性)和行为(方法)封装在一起,模拟现实世界的事物,让代码更贴近人类思维。

二.面向对象编程的价值

核心价值:解决代码冗余、维护困难的问题,提升开发效率,适合中大型项目,核心作用4点

核心作用

具体说明(零基础易懂)

1. 封装性

将属性和方法封装在一起,隐藏内部细节,只暴露必要接口,避免误修改数据,提升安全性。

2. 复用性

定义一个类后,可反复实例化多个对象,无需重复编写相同代码(比如一个学生类,可创建无数学生对象)。

3. 可维护性

代码结构清晰,修改一个类的逻辑,所有该类的对象都会生效,无需逐个修改,降低维护成本。

4. 扩展性

通过继承、多态,可基于现有类快速扩展新功能,不影响原有代码,适合项目迭代升级。

三.核心概念

概念

用法/定义

极简理解

类(class)

class 类名(): 定义属性和方法

对象的“模板”,规定对象有什么特征、能做什么

对象(实例)

对象名 = 类名(参数),类的实例化

按“模板”造的“实物”,可直接调用属性和方法

属性/方法

属性:对象特征(变量);方法:对象行为(函数)

属性=变量,方法=依附于类/对象的函数

四.类与对象

操作

固定格式

关键要点

定义类

class 类名(): def __init__(self, 属性1, 属性2): self.属性1 = 属性1 self.属性2 = 属性2

__init__是构造方法,self必写(代表当前对象)

实例化对象

对象名 = 类名(属性1值, 属性2值)

参数对应__init__的属性,生成具体对象

调用属性/方法

对象名.属性对象名.方法()

属性直接调用,方法需加括号(无参数时)

# 定义类(学生类)
class Student():
def __init__(self, name, age, score):
self.name = name
self.age = age
self.score = score

def show_info(self):
print(f"{self.name}, {self.age}, {self.score}")

# 实例化对象
stu1 = Student("张三", 18, 90)
stu2 = Student("李四", 19, 85)

# 调用属性和方法
print(stu1.name)
print(stu2.score)
stu1.show_info()
stu2.show_info()

五.面向对象三大特性

特性

核心用法

极简说明

封装

self.__属性名(私有化),用方法访问/修改

隐藏属性,避免误修改,提升安全性

继承

class 子类(父类): super().__init__(父类属性)

子类继承父类属性/方法,可新增/重写方法

多态

不同子类重写父类方法,调用时自动匹配

同一方法,不同对象有不同实现,简化调用

# 1. 封装(私有化属性)
class Student():
def __init__(self, name, age):
self.name = name
self.__age = age # 私有化,外部无法直接访问

def get_age(self):
return self.__age

def set_age(self, new_age):
if new_age > 0:
self.__age = new_age

stu = Student("张三", 18)
print(stu.name)
print(stu.get_age())
stu.set_age(19)
print(stu.get_age())

# 2. 继承
class Person():
def __init__(self, name):
self.name = name

def eat(self):
print(f"{self.name} 吃饭")

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

def eat(self):
print(f"{self.name} 吃食堂")

stu = Student("李四", 85)
stu.eat()
print(stu.score)

# 3. 多态
class Cat(Person):
def eat(self):
print(f"{self.name} 吃猫粮")

class Dog(Person):
def eat(self):
print(f"{self.name} 吃狗粮")

def feed(animal):
animal.eat()

cat = Cat("小花")
dog = Dog("旺财")
feed(cat)
feed(dog)

六.常用补充

知识点

用法

说明

类属性

class 类名: 类属性 = 值

所有对象共享,可通过类名/对象名访问

静态方法

@staticmethoddef 方法名(): pass

无self,不依赖类/对象,类名直接调用

类方法

@classmethoddef 方法名(cls): pass

cls代表类,可访问类属性,类名直接调用

# 类属性
class Student():
school = "第一中学"
def __init__(self, name):
self.name = name

stu1 = Student("张三")
stu2 = Student("李四")
print(stu1.school)
print(Student.school)

# 静态方法
class Tools():
@staticmethod
def add(a, b):
return a + b

print(Tools.add(3, 5))

# 类方法
class Student():
school = "第一中学"
@classmethod
def get_school(cls):
return cls.school

print(Student.get_school())

五、注意点

  • __init__是构造方法,创建对象时自动执行,不是初始化方法

  • self必须是方法第一个参数,代表当前对象,不能省略

  • 私有化属性(__开头),外部无法直接访问,只能通过方法操作

  • 继承时,子类__init__需用super()调用父类__init__,否则无法继承父类属性

  • 静态方法/类方法无需实例化,直接用类名调用

赞(0)
未经允许不得转载:171主机测评 » Python零基础入门(七)------面向对象编程
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址