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("我是原函数")