python函数用法详解

python中的函数定义比较简单,但是由于参数的形式多样就导致可以定义非常灵活的函数,下面主要总结下python中函数的知识点。

1.定义

通过

1 def funcName(args):
2 	funcBody

就可以定义一个python函数。

比如

1 def maxx(a, b):
2 	if a < b:
3 		return b
4 	else:
5 		return a

这样就定义了一个简单的最大值函数,接下来我们可以直接调用该函数

print(maxx(5, 3)) #输出5

以上一个简单的例子就演示了python中函数的定义和调用。

2.参数的多种形式

2.1默认参数

在C或者C++中我们通常可以定义默认参数,这样在调用函数时若不手动设置这些参数的时候,函数便会使用默认的值进行运算。python中的默认参数是同样的道理,而且都遵从相同的规则,即默认参数在最右边。

比如上面的函数我们修改一下,

这样我们调用maxx的时候可以使用一个参数,也可以是两个参数,一个参数时就会赋值给a,b的值为10。如果两个参数传入的话,则分别赋值给a和b,与上面的形式一样。

1 def maxx(a, b = 10):
2 	if a > b:
3 		return a
4 	return b
5 
6 print(maxx(5, 3))   #输出5
7 print(maxx(5))      #输出10
2.2变长参数

变长参数指参数的数目不定,这在C语言中需要va_list来处理,其实比较麻烦,但是在python中却非常简单,只需要使用一个*就可以表示变长参数,变长参数在python中会被封装成一个list

1 def fun(*args):
2 	for x in args:
3 		print(x)
4 
5 fun(2, 3, 4, 5, 6)   #输出5个参数:2, 3, 4, 5, 6

这个时候fun的参数args其实是个list,就是所有的变长参数会组装成一个list,也就是args,所以args即为[2, 3, 4, 5, 6]

2.3关键字参数

关键字参数就是说接受键值对形式的参数,参数的接受形式以dict来表示。要表示接受的值为关键字参数,可以在参数前加**来表示。
如下:

1 def print_info(**args):
2 	print(args)
3 	if 'age' in args:
4 		print(args['age'])
5 	if 'name' in args:
6 		print(args['name'])
7 
8 print_info(name='aa', age=18)  #会输出{'age': 18, 'name': 'aa'} 18 aa

这个可以用在注册功能时使用,有些字段是必填字段,有些是可选字段,那我们可以用普通参数接受必填字段然后使用关键字参数来接受可选字段,然后判断可选字段中是否填了,来进行信息获取,形式如下:

 1 def get_info(name, age, **args):
 2     print('name = {0}, age = {1}'.format(name, age))
 3     if 'sex' in args:
 4         print('sex =', args['sex'])
 5     if 'city' in args:
 6         print('city =', args['city'])
 7 
 8 get_info('zhangsan', 19)       #name = zhangsan, age = 19
 9 get_info('zhangsan', 19, sex='M')   #name = zhangsan, age = 19 sex = M
10 get_info('zhangsan', 19, sex='M', city='hangzhou')   #name = zhangsan, age = 19 sex = M city = hangzhou
2.4命名关键字参数

上面的关键字参数中,我们可以穿各种键值对,函数都会接受并保存在args中,但是有时候我们并不需要接受传入的所有键值对,而只需要获取特定的键值对,比如在可选字段中我们只需要城市信息,其他信息一律不接受,那么我们可以明确说明我们只要城市

1 def get_info(name, age, *, city):
2 	print('name = {0}, age = {1}, city = {2}'.format(name, age, city))
3 get_info('zhangsan', 19, city='hangzhou') 

当然后面的关键字参数可以设置默认参数,这样结合下就会更加灵活。

其实上面各种参数形式都是可以结合起来灵活运用的。

本文遵从CC3.0协议转载请注明:转自凌风技术站

本文标题:python函数用法详解

本文链接地址:http://www.iaccepted.net/python/tutorial/14.html

相关文章



发表评论

电子邮件地址不会被公开。 必填项已用*标注