Python-函数

一、基本概念

位置参数,关键字参数
注:关键字参数在位置参数之后
例如:func(1,2,z=3)

二、默认参数(形参)

在这里插入图片描述
或者
在这里插入图片描述
或者【y指向a的内存地址】
在这里插入图片描述

  • Python里面所有的值的传递,都是内存地址的传递,内存地址是对值的引用
  • Python里面所有的值的传递,都是引用传递

在这里插入图片描述
上图:运用None的知识点,解决了默认形参的值不能设置成可变类型
注:在python中None不是一个保留关键字,只是NoneType对象的一个实例。空就是空,它不是整型,不是浮点型,也不是字符串,就是一个NoneType。

三、可变长度参数

1、可变长度的位置参数

# 可变长度的参数: 在调用函数的时候,传入的实参的个数是不固定的
# 可变长度的位置参数
# 用法:*形参名
def func(x,y,*z): # 存成元组
    print(x,y,z)

func(1,2,3,4,5,6)

# 实际运用  ,如:求和功能
def func1(*x):
    sum=0
    for i in x:
        sum =sum +i
    print(sum)
func1(1,2,3,4,5,6,7,8,9)

这里是运行结果
1 2 (3, 4, 5, 6)
45

2、可变长度的关键字参数

1、形参:

# 可变长度的关键字参数
# 用法:**kwargs
def func(x, y, **kwargs):  # 存为字典
    print(x, y, kwargs)


func(1, y=7, name='火娃', b='水娃', c=0)

这里是运行结果
1 7 {‘name’: ‘火娃’, ‘b’: ‘水娃’, ‘c’: 0}

2、实参

1、 单个*号

def func(x, y, z):
    print(x, y, z)


func(*[1, 2, 3])  # 加 *表示func(1,2,3)
# *在实参中有打散的作用,元组,列表,字符串均可被打散

# 或者
l=[1,2,3]
func(*l)

这里是运行结果:
1 2 3

2、双*号
def func(x, y, z):
    print(x, y, z)


func(*{'x': 1, 'y': 2, 'z': 3})  # 字典只用一个*打散,那结果只留一个key
func(**{'x': 1, 'y': 2, 'z': 3}) # 实参打散,** 结果保留value

这里是运行结果:
x y z
1 2 3

3、单双*号混合
def func(x, y, **z): # 形参打包
    print(x, y, z)


func(**{'x': 1, 'y': 2, 'z': 3})

这里是运行结果:
1 2 {‘z’: 3}

例子:

def func(*args, **kwargs):
    print(args)
    print(kwargs)


func(1, 4, 5, 's', 'd', e=7, a=9)

这里是运行结果:
(1, 4, 5, ‘s’, ‘d’)
{‘e’: 7, ‘a’: 9}

总结:运用到形参中是打包,运用到实参中实打散的作用*

def func1(x, y, z):
    print('func1>>>', x, y, z)


def func2(*args, **kwargs):  # 形参-打包
    func1(*args, **kwargs)  # 实参-打散,** 结果仅保留value,*结果仅保留key
    print('args>>>', args)
    print('kwargs>>>', kwargs)


func2(1, 2, 3)
func2(1, 2, z=3)

这里是运行结果:
func1>>> 1 2 3
args>>> (1, 2, 3)
kwargs>>> {}
func1>>> 1 2 3
args>>> (1, 2)
kwargs>>> {‘z’: 3}

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值