Python系列 之 函数

本文详细介绍了Python中的函数,包括位置参数、默认参数、可变参数和关键字参数的使用,以及高阶函数如map、filter和reduce的原理和应用。此外,还讲解了匿名函数lambda和返回函数的概念。最后,深入探讨了Python装饰器的实现方式,包括如何创建带参数的装饰器,并使用functools.wraps保持被装饰函数的元信息完整。
摘要由CSDN通过智能技术生成

OS:Windows
Python:3.8.8
IDE:Sublime Text 3

函数的参数

位置参数和默认参数

定义一个函数,里面包含两个参数,param1 是位置参数在调用函数的时候必须提供的,param2是 默认参数 设置的默认值为 None(当然可以设置成其他值;注意:定义默认参数尽量指向不变对象

def demo_function1(param1, param2=None):
    """
    函数的 位置参数 和 默认参数
    param1:位置参数,调用函数时应给予参数,否则报TypeError
    TypeError: * missing 1 required positional argument: *
    param2:默认参数,调用函数时可不提供该参数,当前默认None
    """
    print(param1)
    print(param2)

调用 demo_function1 参数 param1 赋值 “param1”

# 调用 demo_function1 只给位置参数 param1 赋值
#两种赋值方式都可以
#demo_function1(param1="param1")
demo_function1("param1")

输出:

param1
None

调用 demo_function1 参数 param2 重新赋值 “param2”

    demo_function1("param1", param2="param2")
    # demo_function1("param1", "param2")

输出:

param1
param2

可变参数和关键字参数

定义函数的可变参数关键字参数和上面的位置参数和关键字参数理论上是一样的,只是把参数的概念进行了抽象化
定义一个可变参数和关键字参数的函数:

def demo_function2(*args, **keywords):
    """
    函数的可变参数和关键字参数
    *args :    可变参数
    *keywords :关键字参数
    """
    print(args, keywords)

*args : *符号定义了 args 是可变参数(备注 args 只是一个名字,也可以是别的名字)
**keywords: **符号定义了 keywords 是关键字参数(备注 keywords 也只是一个名字,也可以是别的名字)
调用 demo_function2:

	# args 是 1, 2,"3" keywords是 A="a",B="b"
    demo_function2(1, 2,"3", A="a",B="b")

输出:

(1, 2, ‘3’) {‘A’: ‘a’, ‘B’: ‘b’}

可以看出 args 相当于是一个 tuple ; keywords是个 dict
把 demo_function2 改动一下就可以拿到args和keywords的每个值;修改 demo_function2 :

def demo_function2(*args, **keywords):
    """
    函数的可变参数和关键字参数
    *args :    可变参数
    *keywords :关键字参数
    """
    #print(args, keywords)
    for arg in args:
        print(arg)
    for keyword in keywords:
        print(keywords[keyword])

再次调用修改后的 demo_function2:

    # args 是 1, 2,"3" keywords 是 A="a",B="b"
    demo_function2(1, 2, "3", A="a", B="b")

输出:

1
2
3
a
b

print部分可以改成你想要的逻辑
也可以像下面这样调用demo_function2函数 效果是一样的:

    param_list = [1, 2, "3"]
    param_dict = {
   "A": "a", "B": "b"}
    #demo_function2(1, 2, "3", A="a", B="b")
    demo_function2(*param_list, **param_dict)

高阶函数

map函数

map函数接收两个参数:第一个参数是一个函数,第二个函数是一个 Iterable对象;map函数的作用是将 Iterable对象中的每一个元素代入到 第一个函数中,返回一个新的 Iterator

先定义一个函数用来当做map函数的参数:
函数 map_function 功能:如果param是str类型的就转小写

def map_function(param):
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值