1. 程式人生 > >python中,多模組工程,修改另一模組的變數的方法

python中,多模組工程,修改另一模組的變數的方法

第一次嘗試: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 module2
from 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 module2
from 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

>>>