我會先試試看。使用Python 3,我有一個將arg設置爲變量的主函數。當main()運行時,它會調用一個調用其他函數的複製函數。在這些其他函數運行之後,copy()需要在開始時由main()設置的arg變量完成並允許main()完成。我想我誤解了如何調用其他函數的變量
據我所知,arg變量是main()的本地變量。從函數外部調用arg返回一個NameError。
我在看這個想法:「我應該能夠調用從副本(ARG變量),因爲我正在運行的main(),它是調用複製()。
我一直到達一個NameError。該最終函數在我想要主函數結束之前調用想要知道arg成立但不識別arg的定義。
假設所有其他必需的東西都在工作,必須做些什麼才能將copy()根據定義識別arg
...
def copy():
x = destination()
if os.path.isdir(x):
y = backup_destination()
if not os.path.isdir(y):
shutil.copytree(arg.source, backup_destination)
shutil.rmtree(x)
shutil.copytree(arg.source, x)
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--source', type = str)
arg = parser.parse_args()
if os.path.isdir(arg.source):
copy()
...
if __name__ == '__main__':
main()
函數不共享局部變量。需要時您需要將它們傳遞給對方。 – tcooc
你想定義一個全局變量嗎? – acornagl