python中,多模組工程,修改另一模組的變數的方法
阿新 • • 發佈:2019-01-24
第一次嘗試: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
>>>