原文链接:http://learnpythonthehardway.org/book/ex18.html
大标题啊,对吧?下面我就要向你介绍关于函数的一些东西了。咚咚锵!说到函数,每一个程序员会有有不一样的理解和使用方法,但是现在在这里我只会教给你最简单的你能理解的东西。
函数通常做了三件事情:
1、它们给代码段命名的方式就和“变量”给字符串和数值命名的方式一样。
2、它们可以接受参数,就像你的脚本接受 “argv"一样。
3、通过使用#1 和 #2 可以让你创建一个”迷你脚本“或者”小命令“。
在Python 中你可以通过 def 关键字来创建一个函数。我打算让你创建四个函数,它们的作用就像你的脚本一样,然后我会向你展示这些参数之间的一些关联。
#this one is like your script 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_on(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_on("First!")
print_none()
让我们从第一个函数:print_two 开始入手,因为它看起来和你已经知道创建的脚本很相似:
1、首先我们用 def 关键字来告诉 Python 我想要定义一个函数。
2、在 def 的同一行我们给函数命名了一个名称。在这里我们把它命名为”print_two",但是你也可以将它命名为“peanuts"。名称可以任意,但是最好是简短并且符合函数功能描述。
3、然后我们告诉函数我们需要 *args(asterisk args),这和脚本中的 argv 很相似。参数必须放在()圆括号中才能有效。
4、接着我们用 : 冒号来结束这一行,并且在下一行缩进。
5、在冒号后面的所有行都进行了四个空格大小的缩进操作,缩进后将与print_two函数名开始的位置对齐。我们缩进的第一行中解析参数就和你脚本中解析参数的操作是一样的。
6、为了演示它的工作原理,我们将这些参数都打印出来,就像我们之前在脚本中做的类似。
现在在print_two函数中的问题就是没有一种更简单的方法来创建一个函数。在Ptyon中我们可以跳过所有解析参数的操作,只要直接使用在()中我们想要使用的变量名就可以了。print_two_again 函数就是这样做的。
在这之后在名为print_one的函数中向你展示了如何创建只有一个参数的函数的例子。
最后在名为print_none的函数它向你演示了一个没有参数的函数例子。
警告:
这个警告是非常重要的。如果你现在对这些还不能完全理解也不要泄气。我们接下来将做更多关于函数的一些练习来教你如何来创建一个函数。现在你只要将我说的”函数“理解成”迷你脚本“就可以了。
输出结果如下:
E:\>python ex18.py
arg1:'Zed' ,arg2:'Shaw'
arg1:'Zed' ,arg2:'Shaw'
arg1:'First!'
I got nothin'.
现在你明白一个函数是怎么工作的了吧。注意到你使用函数的方式是不是很像之前使用 exists ,open 和其他“命令”的方式。实际上,我之前称它们为“命令”是为了让你更好的理解,在Python中它们就是函数。这就意味着你也可以自己来写命令然后在脚本中使用它。