【python学习笔记】6.抽象
- 创建函数: 使用def语句定义函数,不用声明参数类型,和返回值类型
def function_name(param1, param2):
'this is document'
pass # fuction body
return value # 可选
- 函数体的第一行字符串被用作文档字符串
- callable(func): 用来判读func是否可以调用
- help函数用来返回相关函数的文档
- 函数名可以作为变量赋值一个变量
- 位置参数:函数调用期间,参数按照参数列表中的顺序依次赋值给参数变量 func(value1, value2)
- 关键字参数:函数调用期间,使用参数名提供的参数func(param1=value1, param2=value2)
- 默认参数:函数声明期间,参数列表中的某个参数被赋值 def func(param=value)
- 收集参数:以星号(*)开头的参数名,用来接收不定量个参数,以元组的形式传递进入函数;可以传入序列,或者元组变量(变量前需要添加星号(*)
>>> def print_params(*params):
... print params
...
>>> print_params(1,2,3,4)
(1, 2, 3, 4)
>>>
>>> a=(1, 2, 3, 4)
>>> print_params(*a)
(1, 2, 3, 4)
>>> print_params(a)
((1, 2, 3, 4),)
- 关键字参数收集:以两个星号号(**)开头的参数名,以字典形式传递进入函数;可以传入关键字参数,或者字典变量(变量前需要添加两个星号(**))
def print_params_3(**params):
print params
>>>
>>> print_params_3(a=1, b=2, c=3, d=4)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>>
>>> print_params_3(**a)
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
>>>
>>> def interval(start, stop=None, step=1):
... 'imitates range for step > 0'
... if stop == None:
... start,stop=0,start
... result=[]
... i = start
... while i < stop:
... result.append(i)
... i+=step
... return result
...
>>>
>>> interval(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> interval(2,5)
[2, 3, 4]
>>>