python函数的变量 python函数变量传递

Python函数及变量的定义和使用def函数名():
函数体
return返回值
def 函数名(非可选参数,可选参数):
函数体
return 返回值
def 函数名(参数,*b):
函数体
return 返回值
函数名 = lambda 参数 : 表达式
例1:f = lambda x , y:x + y
调用:f(6 + 8)输出:14
例2: f = lambda : "没有参数的lambda函数!"
调用: print(f())输出: 没有参数的lambda函数!
python函数中局部变量与全局变量遵守规则(1)简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放 , 如有全局同名变量,其值不变 。
(2)简单数据类型变量在用global保留字声明后,作为全局变量使用,函数退出后该变量保留且值被函数改变 。
(3)对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量 , 则函数内部可以直接使用并修改全局变量的值 。
(4)如果函数内部真实创建了组合数据类型变量 , 无论是否有同名全局变量,函数仅对局部变量进行操作 , 函数退出后局部变量被释放,全局变量值不变 。
*《python语言程序设计基础》.高等教育出版社
python局部变量与全局变量(1)局部变量 是在 函数内部定义python函数的变量的变量python函数的变量,只能在函数内部使用
(2)函数执行结束后 , 函数内部的局部变量,会被系统回收
(3)不同的函数,可以定义相同的名字的局部变量,不会互相影响
示例:
结果:
所谓生命周期就是变量从被创建到被系统回收的过程
(1)局部变量在函数执行时才会被创建
(2)函数执行结束后,局部变量被系统回收
(3)局部变量在生命周期内 , 可以用来存储函数内部临时使用到的数据
示例:
结果:
【python函数的变量 python函数变量传递】 示例:
结果:
示例:
结果:
(1)为了避免局部变量和全局变量出现混淆 , 在定义全局变量时,有些公司会有一些开发要求,例如:全局变量名前加上gl_或者g_的前缀 , 但不同公司可能不一致python函数的变量;
(2)建议全局变量的命名与局部变量的规则区分开;
python中变量的引用、可变和不可变类型、局部变量和全局变量变量的引用
变量和数据都是保存在内存中的
变量和数据是分开存储的
数据保存在内存中某个位置,通过地址来标记
变量保存的是数据的地址,通过地址可以找到数据在内存空间的位置
把变量保存数据地址的过程称为引用
变量的重新赋值修改的是变量中引用数据的内存地址
变量之间的赋值实际是引用的传递
函数参数的传递,本质也是引用的传递
函数的返回值本身也是引用的传递
可变和不可变类型
不可变类型,内存中的数据不允许被修改:数字类型(int,bool,float,complex,long(2,x)、字符串、元组(tuple)
可变类型,内存中的数据可以被修改:列表list、字典dict
无论是可变还是不可变数据类型,通过赋值语句,都会改变变量的引用
Hash函数只能接收不可变数据类型,字典的键也只能是不可变数据类型,字典的value值可以是任意数据类型
局部变量
1.在函数内部定义的变量就是局部变量(作用范围只能是当前函数内部)
2.在函数外部无法直接访问局部变量
3.不同的函数中可以定义同名的局部变量
4.局部变量的生命周期:从定义变量时开始 , 到函数运行结束

推荐阅读