Python中的函数

一:函数是什么?  

在生活中,汽车修理工修理汽车前,会准备好修理工具。如扳手、锤子等。这样,在修理汽车时,拿来用就行了就不用再临时的制造一个工具。

在这个例子中,我们是修理工,可以把函数看做准备好的修理工具,于是:

  修理工===================》程序员

  具备某一种功能的修理工具===》函数

与修理工具类似的,函数在使用前,一定要准备好(“先定义”),让后才能使用,而且函数可以重复的使用。

从上面可以总结到:

  函数的定义:事先准备工具的过程
  函数的调用:拿来就用
  函数必须遵循的规则:必须事先定义,才能调用

二:函数的语法

def 函数名(参数1,参数2,参数3,...):
  '''注释'''
  函数体
  return 返回的值

定义函数的过程:申请一个地址空间,把函数体代码写入其中,然后把地址赋值给函数名

非常需要注意的一点是:函数在定义的阶段只检测语法,不执行代码

def foo():
    print("from bar()"
# 上面的代码在定义阶段报错

def foo():
    print("from bar()")

bar()

按照先定义,然后才能使用的原则,上述的代码会直接报错。但是我们需要注意到,目前代码的才到定义阶段,此阶段只检测语法,不执行代码。而函数的函数体语法正确,所以不会报错。

代码调用的误区

#定义阶段
def foo():
    print("from bar()")
    bar()
    
def bar():
    print("from foo()")

#调用阶段
foo()

使用函数编程的方法,在调用时要十分注意定义和调用的阶段区分,上述的代码将其划分为两部分:定义阶段、调用阶段.

定义阶段包括了两个函数foo和bar的定义,调用阶段是直接调用函数foo。

误区分析:

  foo的函数体中有函数bar的调用。而在函数foo调用到bar时,似乎bar还未定义,根据函数先定义后调用的原则,程序会报错。

上述的分析看似有一定的道理,但实则是错误的认识,Python是解释性的编程语言,执行程序时,依照顺序从上到下依次执行。在把程序划分成定义阶段和调用阶段后我们可以看到:

  首先是定义了函数foo,然后定义了函数bar。当定义阶段完成了之后,调用了函数foo,当foo的函数体执行到调用函数bar时,bar已经定义过了,自然是顺利执行。

三:定义函数的三种类型

无参函数:定义时无参,调用时也不需要参数。

有参函数:定义时有参,参数是函数体代码接收外部传入值的。

空函数:设计代码结构。

四:函数的返回值  

参数是函数体吃进去的东西,返回值时函数输出的东西。

返回的三个方式:

  没有return返回None;有return返回这个值本身;return可以以逗号分隔,返回多个值,以元组为形式给调用者。

需要注意的几点:

  return返回的值没有类型限制。

  return是函数结束的标志,函数体内可以有多个return,但是只能执行一个,执行一次就立刻结束,并把返回值作为本次调用的结果返回。

Ideal are like the stars --- we never reach them ,but like mariners , we chart our course by them
原文地址:https://www.cnblogs.com/li1992/p/8651421.html