python——函数的参数

函数的参数

 

一、位置参数

1.  首先定义一个x2的函数,如:

>>> def power(x):
	return x*x

>>> power(2)
4
>>> power(3)
9

对于函数power(),x就是一个位置参数 

2.  再定义一个求x3,x4,x5,,,,的函数

>>> def power(x,n):
	s=1
	while n>0:
		n=n-1
		s=s*x
	return s

>>> power(2,3)
8
>>> power(2,5)
32

而对于这个power()函数,x和n都是位置参数

调用函数时,传入的参数需要按照位置顺序依次赋给参数x和n

二、默认参数

1.  给位置参数中的某一参数赋值就成了默认参数,如上面的power函数,若只求x5,只需让参数n=5即可

如:

>>> def power(x,n=5):
	s=1
	while n>0:
		n=n-1
		s=s*x
	return s

>>> power(2)
32

在这里,调用 power(2),相当于调用了 power(2,5) 

2.  默认参数必须指向不变对象

三、可变参数

1.若要计算 a2+b2+c2+.....,定义一个函数calc()

调用时,参数numbers接收的是一个tuple,可以传入任意个参数

>>> def calc(*numbers):
	sum=0
	for n in numbers:
		sum=sum+n*n
	return sum

>>> calc(1,2,3)
14
>>> calc()
0

2.  若已经有一个list或者tuple,想要调用可变参数,可以这样做:

>>> nums=[1,2,3]
>>> calc(nums[0],nums[1],nums[2])
14
#上面的调用有些繁琐,下面的更简单
>>> calc(*nums)
14

*nums是表示把nums这个list的所有元素作为可变参数传入进去  

3.  可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple

  

四、关键字参数

1.  关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

如:

>>> def person(name,age,**kw):
	print('name:',name,'age:',age,'other:',kw)

	
>>> person('Monica',28)
name: Monica age: 28 other: {}
>>> person('Rachel',23,sex='woman')
name: Rachel age: 23 other: {'sex': 'woman'}
>>> person('Phoebe',24,city='NewYork',job='singer')
name: Phoebe age: 24 other: {'city': 'NewYork', 'job': 'singer'}

2.  关键词参数具有扩展函数的功能

  

五、命名关键字参数

1.  要限制关键字参数的名字,就可以用命名关键字参数

如:

>>> def person(name,age,*,sex,job):
	print(name, age, sex, job)

	
>>> person('Ross',24,sex='man',job='geologist')
Ross 24 man geologist

2.  和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符 * ,* 后面的参数被视为命名关键字参数

3.  如果函数定义的前面已经有了一个可变参数了,后面的命名关键字参数就不用加特殊分隔符了 

如:

>>> def person(name,age,*city,sex,job):
	print(name,age,city,sex,job)

  

4.  命名关键字参数必须传入参数名,这和位置参数不同,如果没有传入参数名,调用将报错 

六、参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

原文地址:https://www.cnblogs.com/canneddream/p/14174989.html