如何理解函数(2)

函数的返回值

所谓返回值,就是函数向调用函数的地方返回的数据.

编写一个斐波那契函数,来说明这个问题,还记得斐波那契嘛?

1
2
3
4
5
6
7
8
9
10
11
12
13
# !usr/bin/env Python
#coding:urf-8

def fibs(n):
result = [0,1]

for i in range(n-2):
result.append(result[-2]+result[-1])
return result
,
if __name__ == "__main__":
lst = fibs(10)
print(lst)

在这个文件,首先定义了一个函数,名字是FIBS. 其中参数是输入一个整数,得到相应的数列.

观察fibs函数, 最后一个语句return result ,意思是将变量result的值返回. 返回给谁呢? 这要看我们当前在什么位置调用该函数了.

在上面的程序中,以lst=fibs(10)语句的方式,调用了函数,那么函数就将值返回到当前状态,并记录在内存里,然后把它赋值给变量lst.

注意: 上面的函数只返回了一个返回值(是一个列表),有时候需要*返回多个,是以云组形式返回.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
def my_fun():
result 1,2,3

a = my_fun()
a
>>> (1,2,3)

x,y,z = my_fun()

x
1

y
2

不是所有的函数都有return的, 比如有的函数,就是执行一个语句或者什么都不做.也不需要返回值, 事实上, 不是没有返回值, 也有,只不过是是NONE.

1
2
def foo():
pass

我在交互下构造一个很简单的函数, 注意,我这是构造了一个简单函数,如果是复杂的,建议不要在交互模式下做.

这个函数的作用就是PASS—什么也不做了,当然也是return了.

1
2
3
4
5

a = foo()

print(a)
None

函数中的文档

def fibs(n):
“””
this is a Fibonacci sequence.
“””

....

在这个函数的名称下面, 用三个引号的方式,包裹里对这个函数的说明, 就是这个函数的文档.

如果在交互模式下,help(fibs) 可以看到这个函数的说明.

函数的属性

任何对象都有属性,比如”孔乙己的檀香豆”, 这里”孔乙己”是一个对象,檀香豆是一个属性.python中.表示属性,如孔乙己的属性.

1
2
3
def cang():
"""this is a function canglaoshi"""
pass

cang.doc_

也可以为对象增加属性.

1
2
3
4
5
6
7
cang.breast = 90
```

浏览函数的属性:

```python
dir(cang)

参数和变量

函数的参数:函数名的括号里