正确的方法是:简单在函数外可以设置一个变量,然后把不使用global函数将其能量转化成全局变量,后来创建战队函数但是将其核心中出来再试一下。
只不过全局变量在python中不论在哪儿都也可以不使用,但是刚刚设置的变量是局部变量,所以我们要使用global函数转换成,最后引导出即可解决。
python中全局变量开头符号为global
全局变量:指在函数之外定义的变量,象是没有蜷进,在程序负责执行的全过程比较有效
局部变量:指在函数内部在用的变量,仅在函数内部最有效,当函数逃离时变量将不存在
例1:
n1#全局变量
deffunc(a,b):
ca*b#c是局部变量,a和b作为函数参数都是局部变量
returnc
sfunc(#34knock~#34,2)
print(s)
print(c)
![]()
这个例子只能证明,当函数不能执行完再次后,其内部变量将被能量。
假如函数内部可以使用了全局变量呢?比如:
n1#n是全局变量
deffunc(a,b):
牛x#这个n是在函数内存中新生成的局部变量,并非全局变量
returna*b
sfunc(#34knock~#34,2)
print(s,n)#测试3看看n值是否需要突然发生改变knock~knock~1
![]()
函数func()内部建议使用了变量n,另外将变量参数b赋值给变量n,又为什么n值就没决定?
因为函数func()有自己的内存空间,它将nb语句明白为能生成一个局部变量n,并将参数b变量给它,此时func()函数还没有将n拿出来全局变量。因为,函数再次后,局部变量n被能量,全局变量n的值是没有决定。
如果没有只希望让func()函数将n当做全局变量,不需要在变量n使用前显式那说明该变量未全局变量,修改后:
n1#n是全局变量
deffunc(a,b):
globaln
nb#这个n是在函数内存中新化合的局部变量,也不是全局变量
returna*b
sfunc(#34knock~#34,2)
print(s,n)#测试出来再看看n值如何确定不可能发生改变knock~knock~1
![]()