1

我有两个文件 random1.py、random2.py

random2.py 有

def your():  
    global mine  
    mine = 10

random1.py 有

import random2.py

global mine
mine = 4
random.your()
print mine

random1.py 打印出 4 而不是 10。

我的最终目标是让函数能够接受已声明的任何可能变量,并在函数运行后为该变量提供新值。尽管为了组织,我将所有功能都放在一个单独的文件中。我注意到如果我将它们放在同一个文件中,它会起作用。

我正在尝试从 Hoc 复制程序的功能

4

1 回答 1

0
Could you please directly use **random2.mine** instead of declaring it global again, which makes separate copy of mine variable in random1's namespace.

random2.mine = 50
print(random2.mine)


# Another way of modifying attributes of imported module is 
random2.__dict__[mine] = 100
print(random2.mine)

http://docs.python.org/2/tutorial/classes.html#python-scopes-and-namespaces
http://stackoverflow.com/questions/6841853/python-accessing-module-scope-vars
于 2014-02-28T05:54:35.650 回答