Python--函数进阶

Python–函数进阶

1.函数变量的作用域

  变量的作用域指的是变量的作用范围,以此区分出全局变量和局部变量

  • 全局变量:

    在函数之外定义的变量,称之为全局遍历,在整个文件都可以使用(通常定义在文件的顶部)

  • 局部变量:

    在函数内部定义的变量,称之为局部变量,只能在该函数内部使用,外部无法访问

1
2
3
4
5
6
7
8
9
10
#全局变量与局部变量
b = 100 # 全局变量

def function4():
a = 100 # 局部变量
print(a)

function4()
print(a) # 报错,因为a是局部变量,在函数外部不能访问
print("--------------------------------") #分割线

  global关键字用于明确的告诉python解释器,在函数中要使用全局变量,使得可以在函数内部修改全局变量的值

1
2
3
4
5
6
7
8
9
10
#global关键字
num = 1 # 全局变量
def function5():
global num # 声明num为全局变量
num = 100 # 修改全局变量num的值
print(num)

function5()
print(num) # 打印全局变量num的值
print("--------------------------------") #分割线

2.传参方式

  传参方式指的是,在调用函数时,传递实参的方式

  • 位置参数:

    调用函数时根据函数定义时的位置来传递参数,要求调用函数时参数顺序与定义函数时参数顺序完全一致

  • 关键字参数

    调用函数时以函数定义时形参名称作为关键字,以“键=值”的形式来传递参数,不要求顺序

3.默认参数

  默认参数也称为缺省参数,用于在定义函数时,为参数提供默认值,调用函数时,可以不传递有默认值的参数

1
2
3
4
5
def function8(a, b=2, c=3):
print(a, b, c)

function8(1) # 调用函数function8,传入参数a=1,b和c使用默认值2和3
print("--------------------------------") #分割线

  需要注意,默认参数必须放在没有默认值的参数列表的后面,且一个函数在定义时可以设置多个默认参数的,如果为默认参数传递了值,则会修改默认的参数值,如果没有传递该参数,则直接使用默认值

4.不定长参数

  不定长传参也叫可变传参,用于函数定义及调用时参数个数不确定的场景

  • 位置传递
1
2
3
4
5
6
7
8
#不定长参数
def function9(a, *args):
print(a)
print(args)

function9(1, 2, 3, 4, 5) # 调用函数function9,传入参数1, 2, 3, 4, 5
print("function9 end") # 打印函数function9的结束信息
print("--------------------------------")

  传递的所有匹配的位置参数都会被args变量手机,这些参数会合并封装为一个元组,args是元组类型,并且只是约定俗成的变量名,并不是关键字,这里可以使用任何合法的变量(*data)

  • 关键字传递
1
2
3
4
5
6
7
8
#关键字传递
def function10(a, **kwargs):
print(a)
print(kwargs)

function10(1, b=2, c=3, d=4) # 调用函数function10,传入参数1, b=2, c=3, d=4
print("function10 end") # 打印函数function10的结束信息
print("--------------------------------")

5.函数的参数类型

  • 普通参数:数字、布尔、字符串、列表、元组、集合、字典
  • 特殊参数:函数
1
2
3
4
5
6
7
8
9
10
11
12
#函数作为参数
def function11(a, b, func):
print(a)
print(b)
func(a, b)

def function12(a, b):
print(a + b)

function11(1, 2, function12) # 调用函数function11,传入参数1, 2, function12
print("function11 end") # 打印函数function11的结束信息
print("--------------------------------") #分割线

6.匿名函数

  匿名函数指的是没有名称的函数,需要通过lambda表达式来声明函数,可以简化简单函数的编写(单行表达式)

1
2
3
4
#匿名函数
lambda a, b: a + b
print((lambda a, b: a + b)(1, 2)) # 调用匿名函数,传入参数1, 2,打印结果为3
print("--------------------------------") #分割线

  函数逻辑比较简单(单行表达式)且只在一个地方使用时,可以考虑使用匿名寒素,简化书写(通常是作为高阶函数的参数使用)


Python--函数进阶
https://one-null-pointer.github.io/2025/12/25/Python--函数进阶/
Author
liaoyue
Posted on
December 25, 2025
传送口