zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    函数式编程一
    学习设计模式笔记
    看萧井陌直播写代码有感
    自定义事件
    template模板函数
    一个自己写的table插件,用到了一些ES6的语法
    requireJs简介
    underscore
    angular4.0
    New Machine Learning Server for Deep Learning in Nuke(翻译)
  • 原文地址:https://www.cnblogs.com/li1992/p/8651421.html
Copyright © 2011-2022 走看看