参考:
书《深度学习之Pytorch实战计算机视觉》
为什么要用到函数?
编程语言中的函数是:一组按照相应的规则编写的能够实现相关功能的代码块;
使用“函数”后,代码具备了模块化的性质,降低了代码编写的重复性;
一、定义函数
定义函数通用规则:
- 在定义的函数代码块开头用def关键词,关键词后紧跟函数名称和括号 () ,在括号内定义在函数被调用时需要传入的参数,在括号后以冒号 :结尾。
- 在函数内同一个逻辑代码块需要使用相同的空格缩进。
- 在函数代码块最后可以通过return关键词返回一个值给调用该函数的方法(???),如果在return后没接任何内容或在代码段中没有使用return,那么函数默认返回一个空值(None)给调用该函数的方法。
不进行参数传递的函数的调用实例:
定义的函数不需要进行参数传递,所以在调用该函数时括号内的内容必须留空,不然会报
函数被调用的过程中发生参数传递的实例:
该函数被定义成了可传递参数的函数,在实际使用中可以传递参数,也可以不传递参数给这个函数;
不传递参数给这个函数时使用函数定义的默认参数, 这和无参数传递的函数是有明显区别的;
若在调用函数时传递了合法的参数,则在该函数中使用传递的参数来进行相应的操作,而不再使用默认的参数;
二、函数的参数
- 定义有参数的函数时,会涉及参数的传递方式;
- 函数中参数的传递方式与定义的参数类别有非常大的联系;
下面是在参数传递过程中经常会用到的几种参数类别:
- 必备参数:如果函数定义的参数是必备参数,那么在调用该函数时必须将相应的参数传递给函数,否则程序会报错。
- 关键字参数:关键字参数和函数的调用关系很紧密,在函数调用时使用关键字参数来确定传入的参数值,在传递时调换关键字的位 置不会对最终的参数传递顺序产生影响。
- 默认参数:使用默认参数的函数,在调用函数时如果我们没有对该函数进行参数传递,那么该函数使用的参数就是其已经定义的默 认参数。
- 不定长参数:当我们需要传递给函数的参数比函数声明时的参数要多很多时,我们就可以使用不定长参数来完成。
示例: