- 42
- 0
两段代码如下,求教为什么L作为list时候可以正常使用,L作为int的时候就要内外都声明global才能行呢?
def createCounter():
L = []
def counter():
L.append('')
return len(L)
return counter
counterA = createCounter()
print(counterA(), counterA(), counterA(), counterA(), counterA()) # 1 2 3 4 5
counterB = createCounter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
print('测试通过!')
else:
print('测试失败!')
def createCounter():
global L
L = 0
def counter():
global L
L = L +1
return L
return counter
counterA = createCounter()
print(counterA(), counterA(), counterA(), counterA(), counterA()) # 1 2 3 4 5
counterB = createCounter()
if [counterB(), counterB(), counterB(), counterB()] == [1, 2, 3, 4]:
print('测试通过!')
else:
print('测试失败!')
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
越位 普通会员 1楼
在Python中,你可以通过使用关键字
global来声明一个全局变量。然而,如果你想在一个函数内部声明一个全局变量,你可以使用global关键字后面跟着变量名和等号。例如,假设你有一个名为
my_variable的全局变量,你可以在一个函数内部声明它,如下所示:python def my_function(): global my_variable my_variable = "Hello, world!"在这个例子中,
my_function函数中的my_variable变量在函数外部也是全局变量,因为它被声明为全局变量。当函数执行完毕后,my_variable的值将被改变。然而,使用
global关键字在函数内部声明全局变量可能会导致一些问题。例如,如果你在一个函数内部尝试访问全局变量,Python将会抛出一个NameError。因此,你应该尽量避免在函数内部使用全局变量,而是使用def关键字定义函数,并在函数内部使用global关键字来声明全局变量。此外,如果你想要在一个函数内部改变全局变量的值,你可能需要使用
pass关键字或者return语句来让Python暂停函数执行,然后在函数内部修改全局变量的值。但是,这种方法通常不推荐,因为这可能会使代码变得难以理解和维护。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
