python中,多模块工程,修改另一模块的变量的方法

来源:互联网 发布:学c语言好还是java好 编辑:程序博客网 时间:2024/06/05 22:55

第一次尝试:import module2中的a,然后声明global 并修改变量a。最后print。

 module1.py:

 import module2

from module2 import a def main():    print 123    global a    a = 2    module2.print_b()if __name__ == '__main__':main()

module2.py:

a = 1 def print_a(b):    global a    a=b    print a def print_b():    print a def main():    pass if __name__ == '__main__':main()

第一次结果如下(失败):

>>>

123

1

>>> 

 第二次尝试:在module1中将a传入module2中,直接print。

Module1.py: 

import module2from module2 import a def main():    module2.print_a(2)    print 123    #module2.print_b()if __name__ == '__main__':main()

module2.py:

a = 1 def print_a(a):    global a#    a=b    print a def print_b():    print a def main():    pass if __name__ == '__main__':main()

第二次尝试结果(失败):语法错误

>>>

Traceback (most recent call last):

  File"C:\Users\zfen12x\Desktop\module1.py", line 11, in <module>

    import module2

SyntaxError: name 'a' is local and global(module2.py, line 13)

因为:全局变脸和局部变量在同一作用于出现。

 

第三次尝试:

Module1.py: 

import module2from module2 import a def main():    module2.print_a(2)    print 123    module2.print_b()if __name__ == '__main__':main()

module2.py:

a = 1 def print_a(b):    global a    a=b    print a def print_b():    print a def main():    pass if __name__ == '__main__':main()

第三次成功了:

>>>

2

123

2

>>> 

0 0