![](/img/trans.png)
[英]What's the difference between globals(), locals(), and vars()?
[英]What's the difference between locals() and globals()
我不明白這段代碼有什么問題。
請讓我知道我怎么寫來解決這個問題。
我以為這可能很好,但是卻導致了錯誤。
>>> 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
注意:
該字典的內容不得修改; 更改可能不會影響解釋器使用的局部變量和自由變量的值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.