2eew 发表于 2016-1-18 10:10:41

关于跨模块的全局变量的使用

大家都知道这样使用全局变量是可以滴
a=1

def m(b):
    global a
    a=b

m(2)
print a

这样a就变成2了.
但是现在我是这样的,我的变量和函数定义在另外一个文件中(utils.py),我在主控脚本(main.py)中调用 比如:
main.py:

from utils import *

print a
print b
modify(5,6)

print a
print b

utils.py:
a=1
b=2

def modify(c,d):
    global a
    a=c
    global b
    b=d

这样怎么就不行了呢?
有没有人知道啊,如果像from ... import * 所说的,直接导入本地,这样应该是可以的啊

2eew 发表于 2016-1-18 10:10:55

    from utils import *

    def modify(c,d):
      global a
      a=c
      global b
      b=d

    print a
    print b
    modify(5,6)

    print a
    print b

2eew 发表于 2016-1-18 10:11:07

global几模块级的,不能跨模块使用。

2eew 发表于 2016-1-18 10:11:20

    #main.py

    import utils

    print utils.a
    print utils.b
    utils.modify(5,6)

    print utils.a
    print utils.b

    #utils.py

    a=1
    b=2

    def modify(c,d):
      global a
      a=c
      global b
      b=d
页: [1]
查看完整版本: 关于跨模块的全局变量的使用