函数的参数传递

要点:函数可以定义可选参数,使用参数的位置或名称传递参数的值,根据函数中变量的不同作用域有不同的函数返回值方式

可选参数和可变数量参数

部分参数不一定需要调用程序输入,可以在定义函数时直接为这些参数指定默认值。当函数被调用是,如果没有传入对应的参数值,则使用函数定义时的默认值代替

在函数定义时,也可以设计可变数量参数,通过在参数前增加星号(*)实现。带有星号的可变参数只能出现在参数列表的最后。

1
2
def vfunc(a,*b):

参数的位置和名称传递

函数调用时,实参默认采用按照位置顺序的方式传递给函数。

为了解决上述问题,python提供了按照参数名输入实参的方式,格式如下:

1
result = func(x2=4, y2=5, z2=6, x1=1, y1=2, z1=3)

函数返回值

return语句用来推出函数并将程序返回到含糊被调用的位置继续执行。return语句可以同时将0个、1个或多个函数运算后的结果返回给函数被调用处的变量

函数对变量的作用

一个程序中的变量包括两类:全局变量局部变量

  • 全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效
  • 局部变量:指在函数的内部使用的变量,仅在函数内部有效,当函数推出时变量将不存在

在想对函数的实参进行值得改变时,可以通过使用全局变量,用global作为数据类型,也可以通过列表来实现函数可以实现全局列表,而用采用global进行声明

python函数对变量的作用遵循如下原则:

  1. 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,如有全局同名,其值不变
  2. 简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变
  3. 对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部可以直接使用并修改全局变量的值
  4. 如果函数内部真实创建了组合数据类型变量,无论是否有同名全局变量,函数仅对局部变量进行操作,函数退出后局部变量被释放,全局变量值不变

拓展:指针和引用

  • 指针:是保存内存地址的变量,一般出现在比较底层的程序设计语言中,如C语言。
  • 引用:是某一变量的别名,用这个名字可以对变量进行操作,如Python列表类型的引用

两者的主要区别:指针直接指向内存,说明对象已经生成,而引用只是别名,需要真实创建对象才能操作对象。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信