Python3.2官方文档教程--其余参数形式

2.7.3 可变参数列表

最后,相对不太频繁常用的方式是调用含有可变参数的方法。这些参数常被包含在元祖中。在可变的参数中,零或更多正式参数都可能出现。

def write_multiple_items(file, separator,*args):

file.write(separator.join(args))

正常来说,这些可变参数常常放在正式参数列表的后面,因为它们会包揽所有传递给该方法的剩余输入参数。任何出现在*args参数后低的正式参数会被认为是关键字参数,意味着它们只能当关键字使用而不是位置参数。

>>> def concat(*args, sep="/"):

... return sep.join(args)

...

>>> concat("earth", "mars", "venus")

earth/mars/venus

>>> concat("earth", "mars", "venus", sep=".")

earth.mars.venus

 

2.7.4 分拆参数列表

当参数已经存在列表或者元祖中,但是需要分拆以供要求分离位置参数调用的方法,这是相反的情景出现了。例如:在内置方法range()中期望获得独自的开始和停止参数。如果单独分开它们无法使用,就需要写一个方法用*操作符来调用实现分拆列表或者元祖中的参数。

>>> list(range(3, 6)) # normal call with separate arguments

[3, 4, 5]

>>> args = [3, 6]

>>> list(range(*args)) # call with arguments unpacked from a list

[3, 4, 5]

2.7.5 同样的使用形式,字典可以用** 操作符实现关键字参数。

>>> def parrot(voltage, state=a stiff, action=voom):

... print("-- This parrot wouldnt", action, end=’ ’)

... print("if you put", voltage, "volts through it.", end=’ ’)

... print("Es", state, "!")

...

>>> d = {"voltage": "four million", "state": "bleedin’ demised", "action": "VOOM"}

>>> parrot(**d)

2.7.5 形式

由于普遍需要,在函数程序语言中会发现一个共同的特性,像Python中添加Lisp。 像匿名关键字、小型匿名方法也被创建。下面这个方法返回两个参数的和。Lamdba a,b : a +.哪儿需要方法时,哪儿就可以使用形式。它们是根据句法限制在一个简单的表达式。在语义上,它们仅是针对正式方法定义的语法补充。像内嵌方法定义中,形式也可通过包含范围中引用变量。

>>> def make_incrementor(n):

... return lambda x: x + n

...

>>> f = make_incrementor(42)

>>> f(0)

42

>>> f(1)

43

2.7.6 文档字符串

python中关于文档字符串的内容和格式有个规范。

第一行常常是一句对对象作用的剪短而又准确地总结。尽管简洁,但不能明确声明对象的名称和类型,因为通过其他方法(除了名字恰好是一个描述方法功能的动词)它们依然是可用的。

>>> def my_function():

... """Do nothing, but document it.

...

... No, really, it doesnt do anything.

... """

... pass

...

>>> print(my_function.__doc__)

Do nothing, but document it.

No, really, it doesnt do anything.

 

 

你可能感兴趣的:(python)