您的位置:首页 > 编程语言 > Python开发

python3函数中的全局变量与局部变量的分析与理解

2017-08-26 10:28 579 查看
前言:特别注意 print(b)和print(bian())的区别

第一个是不经过房子,没有权限进入房子

第二个则是接到任务,能进入房子。

不能带着武器进入房间内。

 

 

b=34

 

def bian():

   b=45

return b

 

print(b)

这里输出b 结果为34 。因为函数相当于一个独立的空间里面的参数无法影响到外面空间参数的变化。就相当于我们玩游戏时候如果把b形容成武器(攻击力34),当你经过房子时候,但是你并没有权限进去换武器(b=45),所以当你从b=34到print(b)时,你的武器并没有发生什么变化。

 

 

b=34

 

def bian():

   b=45

return b

 

print(bian())

这里输出结果为45.这里和上面不同的是print(bian())意思就是输出函数bian()返回的b值,这里也好理解,既然结果让你输出函数bian里面的结果,相当于你接到一个进入bian中的任务,自然而然的可以升级武器b,房子中武器b攻击力为45 最后输出也就是范围攻击力为45的b了。

也就是说没有bian()这个函数输出你就进不去房子,只有给了你这个信号,(相当于钥匙)你才能进去执行任务。

 

b=34

def bian():

   

    return b

print(bian())

输出结果为34.你会发现这里房子中并没有可以捡到的武器,也不能升级自己原来的武器当你进入房子,发现里面什么都没有,空手就出来了,最后还是得拿着自己以前的武器前进。所以最后即使计入房子(bian()),手里的也还是最开始的武器输出为34

 

 

 

 

b=34

 

def bian():

    b=46

    return b

 

 

def liang():

    b=54

    return b

 

 

print(liang())

 

这里输出为再来看一下这个函数。一个大道,有两个房间 通过观察可以看到 第一个房间有个攻击力为46的武器,第二个房间有个攻击力为54的武器(虽然名字相同,但是有好有坏,虽然鞋子都叫阿迪,但是盗版的还是不行啊。)最开始闯关时候手里拿着攻击力为34的武器最后接到任务(print(liang()))即搏一搏单车变摩托,我要进入第二个房间去打怪。最后战斗结束后顺利的将武器升级为攻击力54了这里注意 虽然很有多房子 武器名字也相同,但是互不影响,毕竟技术不同攻击力也会不同,一样的名不一样的命啊。

 

这样就可以把局部变量和全局变量说清楚了

不过还有一个值得一提那就是特殊任务global 相当与一把万能房间钥匙,有了他你就能进入你想进入的房间,提高自己武器的攻击力了。(破解版你懂的)。

b=34

 

def bian():

  

   b=b+100

   return b

 

 

 

print(bian())

先看这个程序,结果是让你执行bian()的任务当你进入房间b发现事情并没有这么简单,必须把房间的武器提升一点攻击力才能出去,但是问题来了武器呢··· 找了半天没发现让你提升一点攻击力的武器。而你又不能把自己的武器带回房间内。怎么把,也就是你接到了死任务,必死无疑,你将会困在房间内永无天日。程序出错。

 

 

 

 

 

 

b=34

 

def bian():

   global b

   b=b+100

   return b

 

 

 

print(bian())

经过上面的教训你不服气啊 以前任务都是顺顺利利,这次竟然困死在一个任务里,而且这次任务奖励太诱人你并不想失去武器+100强化的机会。所以你偷偷在网上下了个叫global的外挂。进入房间当快要找不到武器困死的时候,大喊一声巴拉巴拉小魔仙global变。

之前在房间外的武器瞬间到你的手中,你兴奋的花了不到一分钟完成了将武器+100的任务,

最后走出房间武器已经是134攻击力的极品装备,一刀999+暴击,两下满级,砍死boss发家致富不是梦。于是你轻松愉快的掌握了所有的局部变量和全局变量的知识。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: