Следующий шаблон кода имеет некоторые проблемы:
all_files = ''
def fpath(arguments):
all_files = []
# modify all_files
return all_files
Похоже, вы хотите передать содержимое all_files
вызывающей стороне. Есть два основных способа сделать это с глобальной переменной и возвращаемым значением:
Глобальная переменная
Чтобы это работало с глобальными переменными, вам нужно сообщить Python, что вы собираетесь изменить глобальную переменную из функции, используя оператор global
:
all_files = ''
def fpath(arguments):
global all_files
all_files = []
# modify all_files
В этом случае вам также не нужен return
, поскольку результат доступен вызывающей стороне в глобальной переменной.
Возвращаемое значение
Возможно, лучше использовать функцию return all_files
:
def fpath(arguments):
files = []
# modify files
return files
all_files = fpath(filename)
Это исключает использование глобальной переменной, которая обычно считается плохой практикой и подвержена ошибкам и путанице. Я также изменил имя массива внутри функции fpath
на files
, чтобы уточнить, что files
и all_files
действительно разные переменные. Они могут иметь одно и то же имя, но все равно будут двумя разными переменными.