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

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

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")

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")

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")

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")
