python中全局变量和局部变量详解,python中的局部变量和全局变量是什么
全局变量:在所有函数之外定义的变量。局部变量:函数内部定义的变量或代码块中的变量。1.如果函数内部的变量名第一次出现,并且出现在=之前,则认为定义了局部变量。无论变量名是否存在于全局域中,函数中都将使用局部变量。(即声明了一个新的局部变量。如果这个变量名与所有变量名相同,那么局部变量名将覆盖全局变量名。#[demo 1]num=100 deffunc():newValue=123 #一个全新的局部变量newValue print(newValue) func() #输出局部变量new value是新的局部变量#[demo 2]num=100 deffunc():num=123 #声明一个全新的局部变量num,虽然名字和所有外部变量用相同的名字屏蔽了print(num) func() #输出局部变量num=123,这是一个新的局部变量。23456789101121314151617 2.如果局部变量使用变量。这个变量是全局存在的,但是没有在本地声明这样的变量。然后全局变量被包含在操作中。但是这个参与运算是不能赋值的,因为当你赋值的时候,根据python语法,也就是生成了一个新的局部变量,而如果你在右边使用。这将是一个错误。#[demo 1]num=100 deffunc():x=num 200 #使用值作为参数,实际上是值print(x)print(id(num))# id value func()# output 300的一个副本,即如果没有局部变量声明,那么全局变量print(id(num))# id value #[demo 2]list=[100]def func():list。append(200)Print(list)Print(id(list))func()# output[100,200]123456789101121314151617181920 3。如果要在局部变量中修改全局变量。因为自己做不到,你修改然后赋值就会有矛盾。也就是说,当你修改赋值var=xxx时,它将被解析,并声明一个新的局部变量var。当然,除了对象类型,您可以直接操作它的元素。#[demo 1]Num=100 deffunc():Num=123 #本来你的本意是给全局变量Num赋值,但是这里会解析声明一个全新的局部变量num print(id(num)) func() # output局部变量newValue,也就是新的局部变量print(id(num))。那我该怎么办呢?可以修改全局变量12345678910[keyword global]#[demo 1]Num=100 deffunc():global Num #来声明这个Num是全局的。如果全局变量已经有了这个Num变量,那么它就是这个意思。如果全局变量没有这个编号,请定义一个新的全局变量。Num=200 #这时Num在函数中的意义总是指全局变量。不能有名为Num的局部变量。print(Num)func()print(Num)# output 200显示修改的变量是一个全局变量#[demo2]def func(): global Num #声明这个Num是全局的。而恰恰在这个时候,没有一个全局变量是Num。如果没有全局变量Num,那么定义一个新的全局变量Num。Num=200 print(Num)func()print(Num)# Output 200显示新定义了一个全局变量Num 123456789101112131415161718。
A.全局变量:模块内部、所有函数外部和类外部。这是全局变量。
B.局部变量:在类的函数和方法中(没有自我修改),这是局部变量。
C.静态变量:那些在类中但不在类的方法中的变量,它们是静态变量。
d、实例变量:class的方法中用self修饰的变量,就是实例变量。
看完定义,同学们又懵了……
一、全局变量和局部变量
[html]查看普通副本#编码:utf-8 #例子仅仅是作为展示,实际工作中,请再思考ahead=HelloWorld#全局变量showList=[]#全局变量defprintoahead():print ahead defprintoother():city= Beijing # city是局部变量打印前方城市defprintList():全局显示列表# global代表引用全局变量,没办法,不写的话,显示列表就成局部变量了,赞吧展示列表。追加(1)显示列表。附加(2)打印显示列表提前打印()打印其他()打印列表()输出结果:
[html]查看纯文本编译怕孤独的白开水[1,2]
…………………………………………………………………………………………华丽丽的分割线………………………………………………………………………………
乙、静态变量与实例变量,捎带又在班级的方法中展示了局部变量,哈哈
[html]查看纯文本类Person(object):TAG= Person #静态变量def__init__(自身,名称):#自身当前的实例对象(简单的说一下,其实都是引用哈)printPerson .标签号这里调用了静态变量自我。人名=姓名#人名是实例变量(简单说就是因为自我,哈哈)defprintName(self):group= BeiJing _ # group是局部变量打印组本身。人名# self。人名,调用实例变量if _ _ name _ _== _ _ main _ _ :p=Person( WangYuanWai )p . print name()
输出结果:
[html]查看纯文案人北京_望远外
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。