我们先来看一段代码:
def max_pow(a, b):
if a > b:
pow_ad = a ** b
return pow_ab
pow_ba = b ** a
return pow_ba
上面就是在python中的函数的定义的形式(先忽略作用和具体语法)。上面除了if开头的哪行以外,每一行的语句开头的空格都是一致的,我们称这些空格为行缩进,在Python中拥有相同的缩进的行是呗认为在同一个层次的。
例如pow_ab = a ** b和return pow_ab,这两个语句拥有相同的行缩进,他们是属于同一个层次,都是被组织在if a > b:这个语句下的,有共同层级的一些语句。
可能你已经注意到了def这个词,我们称之为定义函数的关键字。在这个词后隔一个空格后,定义的是这个函数的名称,而再之后的括号定义的是这个函数所接收的函数的参数形式。而真正利用接收的参数来进行函数功能性描述的函数的定义,则是在def这行之后,增加了行缩进的一系列的语句。
对于max_pow这个函数,我们可以通过max_pow(3, 2)的形式进行调用,而在这里的3和2则是被传入给参数形式的实际参数。我们定义的max_pow这个函数将会用3代替a,而用2代替b,并执行函数中定义的一系列的语句。如果有需要继续使用函数中的结果,我们则可以协商return并在return语句后紧跟定义的函数被调用后返回结果。
就如同上面的例子中,def这行以下的所有语句都是属于max_pow的这个接收了被定义为a和b两个函数的参数形式的函数的定义部分。我们看到,在定义部分我们用到了可以被传入的a和b。
值得一提的是,在上面的例子中我们在函数定义部分所用到的变量a、b、pow_ab、pow_ba都只在函数的定义部分有效。如果我们其他地方使用这些变量,他们都将是没有定义或不同于函数定义中的值的。
网友评论