时间:2021-05-22
函数局部变量 全局变量 及其作用域
#简单类型(int str等)变量的局部变量与全局变量及其作用域的关系name = "xxx" #第一级顶头定义的变量都称为全局变量,其作用域从变量定义的位置开始到此程序结束def Print_Name(): print("name before change:", name)#由于name在此函数之前已经被定义为全局变量,此处函数读取变量name是读取的全局变量name “xxx”,函数内部就不能再定义其同名局部变量,否则无法区分变量为局部变量还是全局变量# name = "yyy" #此语句放开以后会报错:IndentationError: unindent does not match any outer indentation levelPrint_Name()def Change_Name(): name = "yyy" #函数内部首先定义全局变量的同名局部变量,则整个函数内部操作的为局部变量(一个与全局变量同名的临时变量) print("name after change is", name)Change_Name() # yyy实际输出的是局部变量的值print("global name is", name) # xxx此处访问的是全局变量,因为此print语句不是在Change_Name内部。#函数内部需要强制对全局变量进行修改,使用global关键字def Change_global_Name(): global name print("name before change is :", name) name = "yyy"Change_global_Name() # xxx 修改前的全局变量print("global name is :", name) # yyy此处由于函数内强制声明name为global变量,整个函数内部可以对global进行操作#复杂数据类型列表 集合 字典等复杂数据结构如果函数外部定义了函数里面是可以不用global声明也操作的是全局变量,没有局部变量一说了names = ['111', '222', '333']def Change_Names(): names[0] = "444" print("in function names :", names)Change_Names() #in function names : ['444', '222', '333']print("global names :", names) #in function names : ['444', '222', '333'] 对于复杂的数据类型,函数内直接操作全局变量,不会再生成局部变量递归
#函数内部可以调用其它函数,如果函数在内部调用自己就被称为递归函数def Half_fun(n): print(n) if n < 2: return n Half_fun(n/2)Half_fun(100)#递归特性:1、必须有一个明确的结束条件 2、每次递归调用问题复杂度需要相比上次简化 3、递归会占用大量内存以上实例很简单,大家可以本次测试下,感谢你的阅读和对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Python中的变量作用域一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。全局变量所有作用域都可用,局部变量只能在本函数可用,变量的使用
1..知识点bootstrapTable刷新和查询配置2.提升js代码性能1.减少全局变量声明2.缓存dom节点查找结果3.局部变量缓存全局变量/***@par
定义在函数外的变量一定是全局变量;定义在函数内的变量,如果声明了var,那该变量就是局部变量,如果不声明var,那么该变量就是全局变量。1、全局变量与局部变量J
C语言全局变量和局部变量详解核心内容:1、局部变量和全局变量变量按照作用域分为:全局变量和局部变量全局变量的作用域:从定义位置开始到下面整个程序结束。局部变量的
全局变量和局部变量的定义是: 1、局部变量:“在函数内定义的变量”,即在一个函数内部定义的变量,只在本函数范围内有效。 2、全局变量:“在函数外定义的变量”