Python 3 学习笔记——参数前的星号

参数前的星号

单星号

1. 函数定义

在函数定义中,变量前有一个星号代表此处接收数量可变的positional参数, 并将这些参数转化为一个tuple。一般用args命名数量可变的positional参数。
例如:

def a(a,*args)
	print(a)
	print(args)

a(1,2,3,4)

输出:

1
(2,3,4)

2. 函数调用

在函数调用时,一个星号可以将list、tuple、dict类型的变量拆分成一个个单独的变量,分别作为函数参数。

以下为拆分list的例子:

def f(a,b,c,d):
    print(c)
    
v = [1,2,3,4]
f(*v)

输出:

3

以下为拆分tuple的例子:

def m(a,b,c,d):
    print(c)

v = (1,2,3,4)  
m(*v)

输出:

3

以下为拆分dict的例子:

def m(a,b,c,d):
    print(c)
    print(type(c))

v1 = {
    "a":1,
    "b":2,
    "c":3,
    "d":4
}
v2 = {
    1:5,
    2:6,
    3:7,
    4:8
}
m(*v1)
m(*v2)

输出:

c
<class 'str'>
3
<class 'int'>

可见,单星号拆分dict,只能将key传入,且将key转化为对应的类型(str 或数值)。

3. 函数调用和函数定义同时使用

例如:

def m(*a):
    print(a)
    print(*a)

v1 = [1,2,3,4]
m(*v1)

输出:

(1,2,3,4)
1 2 3 4

双星号

1. 函数定义

在函数定义中,变量前有两个星号代表此处接收数量可变的keyword参数, 并将这些参数转化为一个dict。一般用kw(是吧?)命名数量可变的keyword参数。
例如:

def a(a,**args):
	print(a)
	print(args)

a(1,b=2,c=3,d=4)

输出:

1
{
	"b":2,
	"c":3,
	"d":4
}

2. 函数调用

在函数调用时,两个星号可以将dict类型的变量拆分成单独的keyword参数。

以下为拆分dict的例子:

def f1(one=0, two=0, three=0):
    print(one)
    
v1 = {
    "one":1,
    "two":2,
    "three":3
}

f1(**v)

输出:

1

3. 函数调用和函数定义同时使用

例如:

def f1(**kw):
    print(kw)
    for i in kw.values():
        print(i)
    
v1 = {
    "one":1,
    "two":2,
    "three":3
}

f1(**v1)

输出:

{'one': 1, 'two': 2, 'three': 3}
1
2
3
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值