Ich werde versuchen, mit Worten zuerst. Mit Python 3, und ich habe eine Hauptfunktion, die arg als eine Variable setzt. Wenn main() ausgeführt wird, ruft es eine Kopierfunktion auf, die andere Funktionen aufruft. Nachdem diese anderen Funktionen ausgeführt wurden, benötigt copy() die von main() zu Beginn abgeschlossene arg-Variable, um den Abschluss von main() zu ermöglichen.Ich glaube, ich verstehe falsch, wie Variablen aus anderen Funktionen
Von was ich verstehe, ist die Arg-Variable lokal zu main(). Wenn arg von außerhalb der Funktion aufgerufen wird, wird ein NameError zurückgegeben.
ich an diesem Gedanken bin auf der Suche „Ich sollte die ARG Variable von copy() nennen können, weil ich am Main läuft(), die Kopie() aufrufen.
Ich halte an einem Nameerror ankommen. Die letzte Funktion, die ich rufe, bevor ich möchte, dass die Hauptfunktion endet, will wissen, was arg hält, aber arg nicht wie definiert erkennt
Angenommen, alle anderen notwendigen Dinge funktionieren, was muss man tun, um die Kopie() zu bekommen erkenne arg wie definiert
...
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()
Funktionen teilen keine lokalen Variablen. Sie müssen sie bei Bedarf weitergeben. – tcooc
Möchten Sie eine globale Variable definieren? – acornagl