1.callable(函数) 能不能被调用
2.记录函数
def fibs(num):
'This is just doc for document!'
fb = [0,1]
for i in range(num-2):
fb.append(fb[-1]+fb[-2])
return fb
print fibs(5)
print fibs.__doc__
>>>
[0, 1, 1, 2, 3]
This is just doc for document!
>>>
3.传参问题
python 中函数传入对象就可以在函数中改变实际值
class node:
num = 0
num=node()
change(num)
print num.num
print num
5
<__main__.node instance at 0x02B48760>
4.默认参数
def manners(say = "Hi",name='john'):
'This is just doc for document!'
print say+"."+name
manners()
manners("fun")
manners(name = "fun")
>>>
Hi.john
fun.john
Hi.fun
>>>
5.收集参数
# -*- coding: cp936 -*-
def collect(*get):
"可以接收任意个参数,以元组形式存储"
print get
print get[0]
print get[0][1]
collect([1,2,3,4,5],"hello")
([1, 2, 3, 4, 5], 'hello')
[1, 2, 3, 4, 5]
2
# -*- coding: cp936 -*-
def collect(num,*get,**keyget):
'''可以接收任意个参数,以元组形式存储,**收集用字典存储,并且输入调用也得按顺序\
collect('11','22',name=5,'help')这是错误的
'''
print num
print get
print keyget
collect([1,2,3,4,5],"hello","world",['help','me'],name="wang",want="money")
>>>
[1, 2, 3, 4, 5]
('hello', 'world', ['help', 'me'])
{'name': 'wang', 'want': 'money'}
>>>
6.反转过程
元组用* ,字典用**
def add(x,y):return x+y
sum=(1,2)
print add(*sum)
7作用域
>>> x=1000
>>> x
1000
>>> def foo():
x=20
>>> foo()
>>> x
1000
>>>
因为函数每个函数调用会建立个作用域
>>> x=1000
>>> x
1000
>>> def foo():
global x #声明是全局的x
x=20
>>> foo()
>>> x
20
>>>