Python3 .0: - переменная, которая назначена внутри функции пути, не читается за ее пределами - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь создать функцию, которая берет путь и затем сохраняет его в переменной, но переменная, которая назначена внутри функции, не читается за ее пределами

def source_func(path):
    source_path=path
    print("source path is:",source_path)

source_func("C:/Users/Tools Lab1/Downloads/RBI")
source_path

Фактический вывод:

  • функция главная .source_path (путь)

Ожидаемый результат:

  • C: / Пользователи / Инструменты Lab1 / Загрузки / RBI

Ответы [ 2 ]

0 голосов
/ 18 февраля 2020

Это ожидаемое поведение из-за "объема". Любая переменная, которую вы создаете внутри функции, является локальной переменной и доступна только внутри функции. Если вы хотите, чтобы он существовал вне функции, вы должны сделать его глобальным с помощью оператора global. Но ... в общем случае глобальные переменные не являются хорошей практикой, поскольку они могут затруднить чтение и отладку кода.

Существует также иерархия для разрешения переменных ... Для краткости она называется LEGB: локальная, включающая, глобальная, встроенная. Проверьте (Geeks for Geeks) [https://www.geeksforgeeks.org/scope-resolution-in-python-legb-rule/] для быстрого обзора.

0 голосов
/ 18 февраля 2020

Функция должна вернуть значение, затем вы можете присвоить его переменной.

def source_func(path):
    source_path=path
    print("source path is:",source_path)
    return source_path

source_path = source_func("C:/Users/Tools Lab1/Downloads/RBI")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...