глобальные переменные - как назначить переменную после ссылки? - PullRequest
0 голосов
/ 18 октября 2018

В Python язык имеет полезную функцию, которая является «глобальной», однако я видел, что при экспериментировании с кодом, который после назначения глобальной переменной в качестве целого числа или значения, я мог бы использовать переменную, но я не могуизменить переменную после ссылки?

Если вы не понимаете, что я только что написал, вот мой пример кода:

global number
number = 5

text="hello"

if text+str(number)=="hello5":
    number=number+1

После запуска этого конкретного кода я получаю сообщение об ошибке:

UnboundLocalError: local variable 'number' referenced before assignment

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

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Это ваш полный код?Если так;вы бы использовали команду «global» внутри своих функций, чтобы указать, что любая ссылка на эту переменную должна быть взята из глобального пространства имен, а не из локального пространства имен, что эффективно позволяет вам совместно использовать переменную между функциями без необходимости передавать их в качестве параметров.

Ваш код здесь утверждает, что переменная 'число' является глобальной, однако, поскольку 'число' еще не объявлено и не присвоено значение, вы получаете эту ошибку.

Вам нужно только указать, что переменная является глобальной, когда вы вводите другое пространство имен (т. Е. Вводите функцию).И вы делаете это ВНУТРИ этой функции, а не при первом объявлении переменной.

Надеюсь, это поможет

0 голосов
/ 18 октября 2018

Глобальное ключевое слово должно фактически использоваться в локальной области для ссылки на глобальную переменную.Например,

c = 0
def add():
  global c
  c = c + 2

Используя ключевое слово global в функции add (), мы смогли получить доступ к переменной c и соответственно изменить ее.

...