洗礼灵魂,修炼python(20)--自定义函数(1)—基础概念
作为开发,那么我们前面学的那些知识其实够了,但是不够精简,也不好维护,比如需要打印斐波那契数列:
而当我们需要再次打印斐波那契数列,又要把这段代码加上,是不是很烦,有没有方法可以解决,当然可以,那就是自定义函数,你把斐波那契数列定义为一个函数,然后需要时调用函数就行,这样一劳永逸对不对?
自定义函数
1.作用:
为了代码最大程度的重用和简化代码冗余而提供的基本程序结构,函数是一种设计工具,它能让程序员将复杂的系统分解为可管理的部件,其用于将相关功能打包并参数化
2.创建函数格式:
def yourfunctionname():
suite
这个格式其实不陌生,前面其实稍微的提了一下,不过没有细说
例:就上面提到的斐波那契数列:
3.在python中,可以创建4种函数:
- 全局函数:定义在模块中,导入模块后的函数
- 局部函数:嵌套在其他函数中,自定义函数内层还可以嵌套函数,这种则为局部函数
- lambda函数:表达式,用完则过
- 方法(非彼方法):与特定数据类型关联的函数,并且只能与数据类型关联一起使用,比如列表的方法等
注意:自定义函数和变量原理一样,需要先创建,再调用
前面的斐波那契数列可能来得猛了点,搞懵了吧?别急,下面看看简单的
是不是很简单?如果这个你能看懂,那么恭喜你,基本懂了,再看稍微难的函数慢慢就懂了,照着这个简单的函数的模子来刻就是了。
那么当你懂简单的用法后你会想更上一层楼,这是每个人的上进心在‘作怪’,所以你在想,这个代码还是太死了,我想让它活起来,加什么进去它就返回什么,是的,括号内是可以加参数的:
也很简单对吧?
可以加多个参数吗?当然可以:
可以赋值给变量吗?你不废话吗?(/滑稽):
问题来了?为何是None?
None,表示空值,判断时始终为假,不为0,因为0是有意义的。
因为我定义的函数只是打印啊,又没有存储的,如果这样的话是可以的:
可以是可以了,这return是啥?
return,单词意思是“返回”,这个关键词简直就是函数必不可少的,而且也被很多大牛说的【如果函数没有return,那么这个函数将毫无意义】,为什么这么说,你想,函数,如果不返回值,比如向上面的print语句的话,其实是不正统的,运用自定义函数的初衷,其实就是为了得到一个想要的结果而使用的,如果没有结果,那这个函数岂不是一个残的?
注意:return即表示整个函数程序的结束,当函数程序内有return语句则返回,后面的语句则被跳过,例:
上面的例子可以看出,return之前的和return之后的代码运行的结果是不同的
好的,接着说,有人会想了,我定义好的函数,我怎么知道它可不可以被调用呢?那么这么这里就要说到一个函数—callable()
callable()
1.作用:
可调用函数,用于测试定义的函数
2.例:
这个不可调用的例子举的有点牵强哈,不好意思,一时也没想起一个好例子,反正你知道这个函数可以测试你定义的函数能不能调用就行了
对象后面加入小括号,即表示对其调用,在类那一块又会说到,加入小括号其实就是对其实例化的操作
函数的调用,即使用了函数名.__call__(两边双下横线)特殊方法:
这个__calll__()是魔法方法,后面会提到,这里暂且不说
好的,函数这一块有很多重要的知识点,我觉得还是应该分开讲解,这样更好理解和掌握,所以本篇博文就到这里