我用瓦爾()函數的第一次,並且注意到了這個現象:如何從函數返回本地變量([object])?
nodes = ['one', 'two', 'three']
for node in nodes:
vars()[node + '_'] = 'some calc ' + node
vars()[node] = vars()[node + '_']
print one
隨着預期這個片段的Python輸出some calc one
,但如果我用這裏面的功能是這樣的:
def main():
nodes = ['one', 'two', 'three']
for node in nodes:
vars()[node + '_'] = 'some calc ' + node
vars()[node] = vars()[node + '_']
print one
main()
它輸出NameError: global name 'one' is not defined
VARS()對象是字典:
{'node': 'three', 'three_': 'some calc three', 'two': 'some calc two', 'one': 'some calc one', 'two_': 'some calc two', 'three': 'some calc three', 'nodes': ['one', 'two', 'three'], 'one_': 'some calc one'}
現在,我想知道這是怎麼回事,因爲這功能是不是有據可查的,我無法找到例子,說明如果內部函數返回的變量
我剛剛聲明瞭新的dict變量,並將值從vars()分配到:d [node] = vars()[node];返回d – romor 2010-10-30 03:12:42