Python的函数讲解

本文详细介绍了Python中的函数特性,包括默认参数、不定长参数的使用,以及lambda匿名函数的创建。同时,深入探讨了装饰器的概念,展示了如何创建和使用装饰器来增强函数功能。此外,还讲解了偏函数的应用,通过functools.partial固定函数参数。这些内容对于理解Python函数的高级用法至关重要。

1. 默认参数的函数

默认参数:
函数调用时,如果没有传递参数,则使用默认参数
注意:默认参数需要放到形参的最后

def Person(age,hoby="玩游戏",name = "李超"):
    print("age = %s,name = %s,hoby = %s"%(age,name,hoby))

Person(18,"看电影")
>>>age = 18,name = 李超,hoby = 看电影
Person(20,"学习","王凯")
>>>age = 20,name = 王凯,hoby = 学习

2. 不定长参数的函数

参数的形参加了星号*的变量存放所有未命名的变量参数,如果函数在调用时没有指定参数,他是一个空元组

def func(a,*args):
    print("a =",a)
    print("args =",args)
func("a","b","c","d")
>>>a = a
>>>args = ('b', 'c', 'd')
def func2(**kwargs):
    print(kwargs)
func2(a=1,b= 2,c =3)
>>>{'a': 1, 'b': 2, 'c': 3}

3. 匿名函数

不使用def关键字定义函数,使用lambda创建匿名函数
特点:
1.lambda是一个表达式,函数体比def简单
2.lambda的主体是一个表达式,只能在lambda表达式中封装简单的逻辑
3.lambda函数有自己的命名空间,且不能访问自有参数列表之外的或全局命名空间的参数

格式:lambda 参数1,参数2,…,参数n:experssion

sum = lambda num1,num2:num1+num2
print("2+2 =",sum(2,2))
>>>2+2 = 4

4. 装饰器

是一个闭包,把一个函数当做参数返回一个替代版的函数,本质上是一个返回函数的函数

#简单装饰器
def func1():
    print("sunck is a good man!")
def outer(func):
    def inner():
        print("*"*20)
        func()
    return inner

#f是func1的加强版本
f = outer(func1)
f()
>>>********************
>>>sunck is a good man!


def outer(func):
    def inner(age):
        if age < 0:
            age = 0
        func(age)
    return inner

#使用@符号将装饰器应用到函数
@outer #相当于f = outer(say)
def say(age):
    print("sunck is %d years old!"%(age))

f = outer(say)
f(9)
>>>sunck is 9 years old!
f(-2)
>>>sunck is 0 years old!
say(22)
>>>sunck is 22 years old!


#通用装饰器
def outer(func):
    def inner(*args,**kwargs):
        # 添加修饰功能
        pass
        func(*args,**kwargs)
    return inner

5. 偏函数

print(int("1000",base=2))
>>>8
def int2(str,base = 2):
    return int(str,base)
print(int2("1000"))
>>>8
import functools
# 把一个参数固定住,形成一个新的函数
int3 = functools.partial(int,base =2)
print(int3("1000"))
>>>8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西门一刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值