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 结果加 1030六、函数参数分类6.1 位置参数调用函数时参数顺序必须和定义顺序一一对应不能乱序。def info(name, age): print(f姓名{name}年龄{age}) info(小明, 18)6.2 默认参数定义参数时设置默认值调用时不传参则使用默认值传参则覆盖默认值。def info(name, age18): 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 不能省略十一、课后练习定义无参函数打印 5 行 Hello Python定义有参函数传入分数返回及格或不及格编写函数传入三个数字返回最大值定义手机类包含品牌、价格属性定义打电话、发信息方法利用 global 关键字在函数内部修改全局变量的值并输出