函数
1. 定义
函数function,通常接受输入参数,并有返回值。
它负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。
def add(x, y):
"""Add two numbers"""
a = x + y
return a
函数通常有一下几个特征:
- 使用 def 关键词来定义一个函数。
- def 后面是函数的名称,括号中是函数的参数,不同的参数用 , 隔开, def foo(): 的形式是必须要有的,参数可以为空;
- 使用缩进来划分函数的内容;
- docstring 用 “”" 包含的字符串,用来解释函数的用途,可省略;
- return 返回特定的值,如果省略,返回 None 。
2. 使用参数
传入参数时,Python提供了两种选项,第一种是上面使用的按照位置传入参数,另一种则是使用关键词模式,显式地指定参数的值:
print add(2, 3)
print add('foo', 'bar')
5
foobar
print add(x=2, y=3)
print add(y="foo", x="bar")
5
barfoo
可以混合这两种模式:
print add(2, y=3)
5
3.设定参数默认值
4.接收不定参数
(这一部分暂时没有完全理解透彻,不太熟练)
5.返回多个值
函数可以返回多个值:
from math import atan2
def to_polar(x, y):
r = (x**2 + y**2) ** 0.5
theta = atan2(y, x)
return r, theta
r, theta = to_polar(3, 4)
print r, theta
事实上,Python将返回的两个值变成了元组:
print to_polar(3, 4)
(5.0, 0.9272952180016122)
列表也有相似的功能:
a, b, c = [1, 2, 3]
print a, b, c
事实上,不仅仅返回值可以用元组表示,也可以将参数用元组以这种方式传入:
def add(x, y):
"""Add two numbers"""
a = x + y
return a
z = (2, 3)
print add(*z)
这里的*必不可少。
事实上,还可以通过字典传入参数来执行函数:
def add(x, y):
"""Add two numbers"""
a = x + y
return a
w = {'x': 2, 'y': 3}
print add(**w)