python系列之类与对象:面向对象编程(用造人计划秒懂面向对象)

不为失败找理由,只为成功找方法。所有的不甘,因为还心存梦想,所以在你放弃之前,好好拼一把,只怕心老,不怕路长。

python系列前期章节

  1. python系列之注释与变量
  2. python系列之输入输出语句与数据类型
  3. python系列之运算符
  4. python系列之控制流程语句
  5. python系列之字符串
  6. python系列之列表
  7. python系列之元组
  8. python系列之字典
  9. python系列之集合
  10. python系列之函数基础
  11. python系列之函数进阶
  12. python系统之综合案例1:用python打造智能诗词生成助手
  13. python系列之综合案例2:用python开发《魔法学院入学考试》文字冒险游戏

导语:为什么你的代码需要「对象」?
       假设你要开发一款模拟人生的游戏,需要创建100个角色。如果每个角色的吃饭、睡觉、工作代码都重复写100遍,你会不会崩溃?
面向对象编程(OOP) 就是为解决这类问题而生——它让你像工厂流水线一样「批量生产」功能相似的对象。本文用「人类基因库」的比喻,带你轻松理解Python类与对象!


一、面向对象概念

面向对象是一种抽象化的编程思想,很多编程语言中都有的一种思想。一切皆对象,其有三大特性:封装、继承和多态。
a、类:是对一系列具有相同特征和行为的事物的统称,比如动物
b、对象:对象是基于类创建出来的真实存在的事物。比如猫、狗

二、人类基因库:类(Class)是什么?

类 = 基因蓝图
想象你是一个“造物主”,要设计一种新生物——人类。你会先定义他们的共同特征行为

  • 特征(属性):眼睛颜色、身高、体重
  • 行为(方法):吃饭、跑步、说话

在Python中,这种“基因模板”就叫类(Class)

# 使用关键字class定义类
class Human:
    # 初始化方法:赋予每个"人"初始属性(构造函数),函数括号里是形参
    def __init__(self, name, eye_color):
        self.name = name          # 姓名(实例属性)
        self.eye_color = eye_color # 眼睛颜色
        self.energy = 100         # 初始能量值
    
    # 定义行为:方法(函数)
    def eat(self, food):
        print(f"{self.name}正在吃{food}")
        self.energy += 20
    
    def run(self):
        if self.energy >= 15:
            print(f"{self.name}狂奔中!")
            self.energy -= 15
        else:
            print("能量不足,请进食!")

关键解析

  • __init__:构造方法,用于设置对象的初始属性(类似设定DNA)。
  • self:代表类的当前实例,相当于说“我自己”。
  • self.energy:实例属性,每个对象的energy值独立存在。
  • 类的命名规范:要满足标识符命名规则,同时遵循:大驼峰命名习惯。

二、克隆人实验:从类创建对象(Object)

对象 = 根据蓝图制造的个体
有了Human类后,你可以像克隆人一样批量制造具体角色:

# 创建两个「人」对象
alice = Human("爱丽丝", "蓝色")  # 调用__init__方法
mh = Human("明翰", "棕色")

print(alice.eye_color)  # 输出:蓝色
mh.run()               # 输出:明翰狂奔中!
alice.eat("披萨")       # 爱丽丝正在吃披萨

发生了什么?

  1. alice = Human(...):根据Human类创建一个实例(对象)
  2. self自动指向alicemh同理——这就是为什么每个对象属性独立。

三、实战:用OOP开发【员工管理系统】

需求:假设你要管理公司员工,每个员工有姓名、工号、部门,且能办理入职、打印信息。

1. 定义Employee

# 定义员工类
class Employee:
	# 初始化一些参数
    def __init__(self, name, emp_id, department):
        self.name = name
        self.emp_id = emp_id
        self.department = department
        self.status = "待入职"
    
    # 办理入职业务
    def onboard(self):
        self.status = "已入职"
        print(f"{self.name}(工号{self.emp_id})已加入{self.department}部门")
    
    # 查看员工信息
    def print_info(self):
        print(f"员工信息:{self.name} | {self.emp_id} | {self.department}")

2. 创建并管理对象

# 创建员工实例
emp1 = Employee("张三", "1001", "技术部")
emp2 = Employee("李四", "1002", "市场部")

# 调用函数
emp1.onboard()  # 张三(工号1001)已加入技术部部门
emp2.print_info()  # 员工信息:李四 | 1002 | 市场部


四、常见问题答疑

Q1:什么时候该用类?

  • 当需要管理多个具有相同属性和行为的对象时(如游戏角色、用户数据)。
  • 当代码需要模块化,避免函数和变量散落各处。

Q2:类和模块有什么区别?

  • 类是对象的模板,模块是代码的组织单元(一个.py文件)。

Q3:为什么要有self?

  • 为了明确哪个对象在调用方法。就像对讲机通话时说“我是张三”一样必要。

五、动手挑战:升级你的代码

  1. Employee类添加salary属性和raise_salary方法
  2. 创建Manager类继承Employee,并添加team属性
  3. 尝试使用私有属性保护敏感数据

通过将现实世界映射到代码,OOP让复杂问题变得直观。现在,尝试用类与对象重构你之前的项目吧!

本人才学尚浅,本章里有不足之处,还望指教。【下一章:详解面向对象之属性与函数】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值