前言
前述分享的两篇关于Python函数的建立以及调用的原理,本篇分享的是对于函数的参数调用以及函数的模块化。
参数
位置参数和关键字参数
函数被调用时需要将实参传递给形参,实参有:位置参数和关键字参数,下面将位置参数和关键字参数的调用形式以及不同点进行示例。
1.使用位置参数:
在函数调用时直接传递实参数值,不带有形参名时需要严格按照形参在函数头的位置进行函数调用,即实参的输入需要和参数定义时的类型、数量和顺序是一致的。
2.使用关键字参数:
在函数调用时使用带关键字即参数名时,可以不按照参数在函数头定义的顺序,关键字参数按照name = value
的格式进行书写,同时需要注意的是关键字参数和位置参数在混合使用时,位置参数的调用位置不能在任何关键字参数之后。
3.传递参数方式:
在Python中所有数据就是对象,变量是指向对象的引用,而在调用带参数的函数时,形参接收到的是实参的引用值即对象,即参数传递是通过值传递,如果实参是一个数字或者字符串(在Python中数字和字符串是不可变对象),无论形参是否改变都不会影响实参,即当不可变对象被传给形参之后,形参进行运算或者发生变化都是以新对象进行处理。
函数模块化
在之前的函数基本语法中示例程序出现过引用模块的情形,即通过
import
方式进行引用,同样我们也可以将自己编写的函数保存为单独的.py
文件,放在与调用此函数的.py
文件所在的文件目录下,通过import方法便能够引用自己编写的函数。
而模块化函数便是为了更加方便的使用其功能,这样使得代码易于维护和调试,同时提高代码的重用性,减少了冗余的代码,程序的质量也随之提高。
调用模块注意点:
如果采用import module_name
的形式调用模块,则在需要使用模块中的函数时必须使用module_name.function_name
的形式调用模块中的函数,当只需要使用模块中的某个函数时可以采用from module_name import function_name
的形式调用模块中的参数,这时调用函数便可以直接通过函数名调用。
使用模块化函数的优点
使用模块化的函数,将这部分功能的代码和其他代码分割开,使程序的逻辑更加清晰且程序可读性更强;
同时关于这部分功能的错误都被缩小在函数中,调试范围缩小;
最方便的便是函数可被其他程序重用。
注意:如果在同一个模块中定义多个同名函数,虽然不会显示语法错误,但是后者的优先级较高。
——————————
参考资料
- 《Python程序语言设计》