locals()和globals()有什么区别

2024-09-25 00:31:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白这段代码有什么问题。你知道吗

请让我知道我如何写信来解决这个问题。你知道吗

我本以为这可能是好事,但它导致了错误。你知道吗

>>> def L():
...     for i in range(3):
...             locals()["str" + str(i)] = 1
...     print str0
... 
>>> L()

如果我执行它,就会发生以下错误。你知道吗

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in a
NameError: global name 'str0' is not defined

但是,如果使用globals(),则不会发生错误(如下所示)

>>> def G():
...     for i in range(3):
...             globals()["str" + str(i)] = 1
...     print str0
... 
>>> G()
1

但是!!!如果我不使用for语句,我可以这样写,而且效果很好。你知道吗

>>> def LL():
...     locals()["str" + str(0)] = 1
...     print str0
... 
>>> LL()
1

我希望在执行上述代码后,使用方法中设置的变量来获得结果。你知道吗

>>> str0
1
>>> str1
1
>>> str2
1

Tags: 代码infordef错误stdinlinerange