多语言展示
当前在线:204今日阅读:113今日分享:31

python函数中定义参数传递参数的四种方法

python中函数使用非常普遍。在定义了函数之后,调用函数时需传递参数(针对有参数的函数)。传递参数的方法有几种,可单独使用也可混合使用,接下来跟大家分享一下。
工具/原料
1

python 3.6.4

2

jupyter notebook

3

windows 7

一、位置参数 F(arg1,arg2,...)
1

python函数中,位置参数是指直接放在函数名后括号中的参数,用逗号隔开。我们定义一个有2个位置参数的函数,代码示例如下: def make_pizza(size,topping):    print('\nMaking a ' +  str(size) +  '-inch pizza with ' + topping)

2

接着向函数传递2个参数,以调用函数。代码示例如下: make_pizza(10,'durian')

二、关键字参数 F(arg2=value...)
1

python中,关键字参数是指用等号赋值的参数。如果关键字形参有默认值,则调用函数时未提供参数的情况下使用默认值;如果调用函数时提供了实参,则实参会代替函数定义里的默认值。代码示例如下: def make_pizza(size=10,topping='durian'):    print('\nMaking a ' +  str(size) +  '-inch pizza with ' + topping)

2

接着,不传递参数直接调用函数。输出时参数值使用函数定义时的默认值。代码示例如下: make_pizza()

3

然后,向函数传递2个参数以调用函数。输出时参数值用调用函数时提供的实参。代码示例如下: make_pizza(12,'cheese')

三、任意数量参数 F(*arg1)
1

位置参数个数跟位置都必须一样。如果想要灵活使用任意数量的参数,定义函数时可在形参名前加一个星号。代码示例如下: def make_pizza(*toppings):    print('\nMaking a 10-inch with the following toppings:' )    for topping in toppings:        print('-' + topping)

2

接着,向函数传递2个参数以调用函数。虽然定义函数时形参看起来只有1个,但实际上调用时可传递任意数量的实参。代码示例如下: make_pizza('durian','cheese')

四、任意数量关键字参数 F(**arg1)
1

格式如“*形参名”的参数虽可提供任意数量的参数,但是以元组形式存在。如果需要提供任意数量的键值对类型的参数,可在形参名前面加两个星号。代码示例如下: def make_pizza(**toppings):    print('\nMaking a 10-inch with the following toppings:' )    for key,value in toppings.items():        print(key + ':' + value)

2

接着,向函数传递2个关键字实参以调用函数。虽然定义函数时形参看起来只有1个,但实际上调用时可传递任意数量的关键字实参。代码示例如下: make_pizza(topping1='durian',topping2='cheese')

五、综合使用4种类型的参数
1

以上四种参数可以单独使用,也可以混合使用。混合使用时,位置参数必须放在关键字参数之前,关键字参数必须放在带星号的可变参数之前,带一个星的可变参数必须放在带两个星的可变关键字参数之前。代码示例如下: def make_pizza(size,origin='durian',*fruits,**vegetables):    toppings = []       toppings.append(origin)        for fruit in fruits:        toppings.append(fruit)         for value in vegetables.values():        toppings.append(value)       print('\nMaking a ' + str(size) + '-inch pizza with the following toppings:' )    print(toppings)

2

上述函数对应的代码解析如图。

3

接着向函数传递参数以调用函数。需要注意的是,调用函数时,系统先解读第一个参数为位置参数,第二个参数为关键字参数,剩下的单独参数会被当成一个元组存储,其它的关键字参数会被当成一个字典存储。 make_pizza(12,'durian','pineapple','peach',vegetable1='onion',vegtalbe2='green pepper')

注意事项
1

1、有问题可点击提问交流~

2

2、如果觉得经验不错,欢迎点赞、投票、收藏以及分享哦~

推荐信息