ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Python 函数与类:从 def 到 class 的完整指南

2026/8/9 4:19:48 拓冰建站 浏览量
Python 函数与类:从 def 到 class 的完整指南

一、什么是函数?

函数的核心逻辑:把重复使用的代码块封装起来,起一个专属名字,需要用时直接调用,不用重复写代码。

函数的核心作用:代码复用、简化结构、逻辑清晰、方便维护。

Python 函数分为两种:内置函数(print、input 等)自定义函数(def 定义)

二、def 自定义函数基础语法

2.1 语法格式

def 函数名(参数列表): 函数内部代码 return 返回值

语法硬性规则:

  • def 是定义函数的关键字,必须小写
  • 函数名后必须加括号,括号后必须加冒号 :
  • 函数内部代码必须缩进 4 个空格
  • 函数不写 return,默认返回 None
  • 函数必须先定义,再调用,顺序不能颠倒

三、无参函数(无需传参,直接调用)

无参函数:括号内不写任何参数,适合固定功能、固定代码的场景。

3.1 实操案例

需求:封装一个打印欢迎语的函数

# 定义无参函数 def show_msg(): print("欢迎学习 Python 函数!") print("坚持练习就能进步") 调用函数 show_msg() show_msg()

运行结果:

欢迎学习 Python 函数! 坚持练习就能进步 欢迎学习 Python 函数! 坚持练习就能进步

四、有参函数(传入数据,灵活执行)

有参函数:括号内定义参数,调用时传入数据,让函数根据不同数据执行不同结果,灵活性极高。

4.1 实操案例

需求:封装函数,传入两个数字,计算并打印两数之和

# 定义带参数函数 def add_num(a, b): res = a + b print(f"两数之和为:{res}") 调用函数,传入实参 add_num(10, 20) add_num(50, 30)

运行结果:

两数之和为:30 两数之和为:80

五、return 返回值(函数结果带出)

print 只是单纯打印结果,return 可以把函数运算结果返回出来,赋值给变量,供后续代码继续使用。

核心特点:执行 return 后,函数立即结束,后续代码不会执行。

5.1 实操案例

需求:函数计算两数乘积,返回结果并二次使用

def mul_num(a, b): res = a * b # 返回结果 return res 接收返回值 result = mul_num(4, 5) print(f"乘积结果:{result}") 二次运算 print(f"结果加 10:{result + 10}")

运行结果:

乘积结果:20 结果加 10:30

六、函数参数分类

6.1 位置参数

调用函数时,参数顺序必须和定义顺序一一对应,不能乱序。

def info(name, age): print(f"姓名:{name},年龄:{age}") info("小明", 18)

6.2 默认参数

定义参数时设置默认值,调用时不传参则使用默认值,传参则覆盖默认值。

def info(name, age=18): print(f"姓名:{name},年龄:{age}") info("小红") info("小李", 20)

七、变量作用域(重点易错)

根据定义位置,变量分为局部变量、全局变量。

局部变量:在函数内部定义,仅函数内有效,函数结束自动销毁。

全局变量:在函数外部定义,整个文件都有效。

想要在函数内修改全局变量,需要使用global关键字声明。

7.1 实操案例

# 全局变量 num = 100 def change_num(): global num num = 200 print("函数内修改后:", num) change_num() print("函数外全局变量:", num)

运行结果:

函数内修改后: 200 函数外全局变量: 200

八、class 类与面向对象基础

函数是对功能的封装,类是对属性和行为的整体封装,是 Python 面向对象编程的核心。

核心逻辑:类是模板,对象是根据模板创建的具体实例。

类包含两大核心:属性(特征数据)方法(功能函数)

8.1 class 基础语法

class 类名: # 初始化方法(构造方法) def __init__(self, 属性参数): self.属性 = 属性参数 # 自定义方法 def 方法名(self): 方法执行代码

硬性规则:

  • 类名首字母大写
  • __init__方法创建对象时自动执行
  • self必须写在方法第一个参数

8.2 核心知识点解释

__init__ 初始化方法:创建对象时自动触发,用于给对象初始化属性。

self:代表当前对象本身,用来调用自身的属性和方法。

8.3 实操案例(定义学生类)

需求:定义学生类,包含姓名、年龄属性,拥有自我介绍方法。

# 定义学生类 class Student: # 初始化属性 def __init__(self, name, age): self.name = name self.age = age # 自定义方法 def introduce(self): print(f"大家好,我是{self.name},今年{self.age}岁") 创建对象(实例化) stu1 = Student("小明", 18) stu2 = Student("小红", 17) 调用对象方法 stu1.introduce() stu2.introduce()

运行结果:

大家好,我是小明,今年 18 岁 大家好,我是小红,今年 17 岁

九、类的自有方法与属性调用

属性调用:对象.属性

方法调用:对象.方法()

9.1 实操案例

class Dog: def __init__(self, name, color): self.name = name self.color = color def bark(self): print(f"{self.color}的{self.name}在汪汪叫!") 实例化对象 dog = Dog("旺财", "黄色") 调用属性 print(dog.name) print(dog.color) 调用方法 dog.bark()

运行结果:

旺财 黄色 黄色的旺财在汪汪叫!

十、本节课重点总结

  • def 函数:封装重复代码,支持无参、有参、默认参数,return 可返回运算结果
  • 变量作用域:局部变量仅限函数内,全局变量全局生效,global 可修改全局变量
  • class 类:面向对象核心,模板化封装属性与行为,类名首字母大写
  • __init__ 构造方法:创建对象自动执行,用于初始化对象属性
  • self 关键字:指代当前对象,是类方法必备首位参数
  • 核心流程:定义类 → 实例化对象 → 调用属性/方法
  • 语法禁忌:def/class 冒号不丢失、缩进规范、先定义后调用、self 不能省略

十一、课后练习

  1. 定义无参函数,打印 5 行 Hello Python
  2. 定义有参函数,传入分数,返回"及格"或"不及格"
  3. 编写函数,传入三个数字,返回最大值
  4. 定义手机类,包含品牌、价格属性,定义打电话、发信息方法
  5. 利用 global 关键字,在函数内部修改全局变量的值并输出