# this one is like your scripts with argv def print_two(*args): arg1, arg2 = args print "arg1: %r, arg2: %r" % (arg1, arg2) # ok, that *args is actually pointless, we can just do this def print_two_again(arg1, arg2): print "arg1: %r, arg2: %r" % (arg1, arg2) # this just takes one argument def print_one(arg1): print "arg1: %r" % arg1 # this one takes no arguments def print_none(): print "I got nothin‘." print_two("Zed","Shaw") print_two_again("Zed","Shaw") print_one("First!") print_none() |
运行结果
[root@suys1 suys]# python 13.py arg1: ‘Zed‘, arg2: ‘Shaw‘ arg1: ‘Zed‘, arg2: ‘Shaw‘ arg1: ‘First!‘ I got nothin‘. [root@suys1 suys]# |
让我们把你一个函数 print_two 肢解一下,这个函数和你写脚本的方式差不多, 因此你看上去应该
会觉着比较眼熟:
1. 首先我们告诉 Python 创建一个函数, 我们使用到的命令是 def ,也就是“ 定义(define)”的意思。
2. 紧接着 def 的是函数的名称。本例中它的名称是 “print_two”,但名字可以随便取,就叫
“peanuts” 也没关系。但最好函数的名称能够体现出函数的功能来。
3. 然后我们告诉函数我们需要 *args (asterisk args),这和脚本的 argv 非常相似,参数必须放在圆括号 ()
中才能正常工作。
4. 接着我们用冒号 : 结束本行, 然后开始下一行缩进。
5. 冒号以下,使用 4 个空格缩进的行都是属于 print_two 这个函数的内容。其中第一行的作用
是将参数解包,这和脚本参数解包的原理差不多。
6. 为了演示它的工作原理, 我们把解包后的每个参数都打印出来,这和我们在之前脚本练习中所作
的类似。
函数 print_two 的问题是:它并不是创建函数最简单的方法。在 Python 函数中我们可以跳过整个
参数解包的过程,直接使用 () 里边的名称作为变量名。这就是 print_two_again 实现的功能。
原文:http://11672427.blog.51cto.com/11662427/1794369