分享

python函数怎么调用自身?

 庆亮trj21bcn0z 2018-03-06

针对这个Python函数问题,我从以下几点回答:

1. Python函数定义——def

Python有很多已经定义好了的内置函数和模块,如果是自定义函数,则要像下面这样:

定义一个函数要使用关键字def,后面是函数名,括号,括号内是函数的参数,没有参数的时候不写,再后面就是冒号,然后在缩进块中编写函数体,最后使用关键字return返回函数值,没有返回值可以不写,也可以只写return,后面不跟值。这便是函数的基本定义。

注意:

  1. 函数名不要使用Python既定关键字,也不要是常用的内置函数,最好也不要使用test

  2. 函数参数可以有默认值,还可以写不定参数等,比如print函数就是不定参数(*args)

  3. 返回多个值的时候,是以tuple的形式,函数在执行到return语句后,便会返回。

  4. 函数名与语句块中间的三引号注释,是属于函数的doc,方便查询函数信息的,有必要的话,还可以写上参数和返回值的信息。

关于函数的知识点还是挺多的,不过就重要性而言,还是函数本身逻辑的实现才是主要的,其他一些小细节,遇到了就明白了。

2. Python函数的调用

函数定义好了,我们则要用起来,这也是本次作答的重点。如果是在本模块内(同一个py文件内)调用,则很简单,写一个if语句,如下:

这是推荐的写法,当然,你也可以直接这样

上面两种方式都能正确运行函数的调用过程,不过,__name__ == ‘__main__’ 的作用是,当此模块(py文件)被其他文件导入的时候,便不会执行,而仅仅是导入函数的定义。

__name__是模块的一个属性,其作用是调用当前模块的名称,若此模块是直接执行时,__name__ == ‘__main__’ 。当此模块是被其他程序import时,__name__的值为此模块的名称。

好了,函数的简单调用就是这样,若是想在其他模块中调用这个函数,那么:

假如你这个函数保存在文件名为:def_study.py

当然,导入模块的知识点也很多,这里就不细讲了

Python函数调用自身

上面说清楚了函数的基本调用方法,那么,如题主所说的,想要调用函数自身该怎么做呢?举个栗子:上面是一个经典的数列:斐波那契数列,我们用函数来实现其计算

看注释你也知道了什么是斐波那契数列。上面的函数中,当n不为0和1时,就会调用函数自身,将参数分别减1和2。这样的写法,叫做递归

递归会以栈的形式依次调用函数自身,直到条件发生变化到底,才会依次返回每一次递归调用的值,说实话,递归很占内存。我们是可以用循环改写此函数的。

循环的办法,就是依次计算第1,2,3……直到n个数的值。

这便是调用函数自身的例子!欢迎指正!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多