Python基础-06

本文详细介绍了Python函数的基础概念,包括函数的返回值、参数类型(如位置参数、默认参数、关键字参数),参数组(如*args和**kwargs的使用),以及函数内嵌套定义函数的方法。此外还介绍了前向引用的概念及注意事项。

函数:
 1.函数返回值:返回值个数=0:返回None
    返回值个数=1:返回Object(注意并不是对象地址,而是具体的数值)
    返回值的个数>1:把多个返回值放到元组中,最后返回tuple
 2.函数参数: 位置参数:位置参数必须在关键字参数的左边
    默认参数:靠着参数列表的右边写
    关键字参数:不需要考虑参数的顺序问题,通过参数名=值的方式进行数值传递
3. 参数组:
            *位置参数
def test(x,*args):
    print(x,args)
test(1,2,3)#2与3会被打包成元组
test(1,[1,2])#列表会被打包成元组中的一个元素,位置参数如果传递的是元组或是字典,处理方法一致
test(1,*[2,3])#此方法等价于方式一,元组也是一样的操作,但是字典会把对应的key传递给args,组成对应的元组
        *关键字参数
def test(x,**kwargs):
    print(x,kwargs)
test(1,y=2,z=3)#把关键字参数打包成字典,这里面注意函数调用时,位置参数必须在关键字参数的左边
test(1,**{'y':2,'z':3})等价于方式一
        *位置参数与关键字参数的混合使用:
                
def test(x,*args,**kwargs): print(x,args,kwargs)#注意*args只能放中间,如果把它放在第一个位置,则函数调用时,传递的所有实参都会被打包给args,如果放在最后则违背位置参数必须在关键字参数的左边的原则
4.函数里面可以嵌套定义函数,在函数内部对全局变量进行修改,必须使用global关键字
def A():
    global name #修改全局变量的值
    name="pzz"
    print(name)
name="nan"
A()
关键字nonlocal:
def A():
    name="pzz1"
    def B():
        nonlocal name="pzz2" #对于函数嵌套的上一级的变量进行修改
        print(name)
    B()
A()
如果全部变量与局部变量重名,则函数内部优先考虑局部,再考虑上一级,最终到全局。
def A():
     name="pzz1"
     def B():
         name="pzz2"
         def C():
             print(name)
         C()
     B()
name="Nan"
A() #打印结果是pzz2



5.前向引用:
 运行代码之前的代码会被编译处理,而之后的则不会被编译处理
def A():
    print("A...")
    B()
A() #运行报错,B未定义。因为运行之后的代码没有被编译,所以会报错
def B():
    print("B...")
6.直接打印函数名,运行结果是函数在内存中的地址
def A():
    print("A...")
    def B():
        print("B...")
    return B
b=A() #返回函数B的内存地址
b() #相当于运行函数B,打印:B...




评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值