python函数
728字约2分钟
2024-09-29
函数定义与调用
函数:是指一段可以直接被另一段程序或代码引用的程序或代码。 在编写代码时,常将一些常用的功能模块编写成函数,放在函数库中供公共使用,可 减少重复编写程序段和简化代码结构。
语法:
def 函数名称(参数1, 参数2, ...):
<代码块>
return <表达式>
示例:
def hello():
print("Hello World!")
hello() # 调用函数
函数参数
函数参数:接收参数
示例:求和函数
def f(a, b):
return a + b
print(f(1,2)) # 按参数位置赋值
print(f(b=2,a=1)) # 按对应关系赋值
示例:生成序列列表
def seq(n):
result = []
x = 0
while x < n:
result.append(x)
x += 1
return result
print(seq(9))
函数参数:参数默认值
参数默认值:预先给参数定义默认值,如果调用函数时没指定该值,则用默认值。
示例:
def f(a, b=2):
return a + b
print(f(1))
print(f(1,3))
函数参数:接收任意数量参数
前面学习的是固定参数数量,当不知道有多少个参数时可以在参数前面加*与**,表示可接收任意多个参数。
*args 接收任意多个参数,并放到一个元组中。
**kwargs 接收一个键值,并存储为字典。
示例:传入多个参数,计算总和
def func(*seq):
x = 0
for n in seq:
x += n
return x
print(func(1,2,3))
示例:传入多个键值,进行处理
def func(**computer):
for k,v in computer.items():
print("名称:%s\t价格:%s" % (k,v))
func(主机=5000,显示器=1000,鼠标=60,键盘=150)
匿名函数(Lambda)
匿名函数:没有名字的函数,使用lambda关键字定义,一般仅用于单个表达式。
示例:求和函数
s = lambda a, b: a+b
print(s(1,2))
等价于
def func(a, b):
return a+b
函数装饰器
函数装饰器作用:装饰器本质上是一个函数,它可以让其他函数在不需要做任何代码 变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。
应用场景:记录日志、性能测试、权限效验等
函数装饰器:无参数
示例:装饰器使用
def hello():
print("我是原函数")
def decorator(func):
def f():
print("原函数开始执行了")
func()
print("原函数执行结束了")
return f # 返回函数体
dec = decorator(hello) # 装饰器传入函数
dec() # 调用内部函数
Python提供一个更简洁引用装饰器的方法:语法糖“@”
示例:
@decorator
def hello():
print("我是原函数")
hello()
函数装饰器:带参数
示例:
def decorator(func):
def f(msg):
print("原函数开始执行了")
func(msg)
print("原函数执行结束了")
return f
@decorator
def hello(msg):
print(msg)
hello("我是原函数")