Python: Могу ли я глобальные переменные в функции с простой строкой? - PullRequest
1 голос
/ 19 марта 2019

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

Я ищу новый способ сделать все переменные глобальными!Пожалуйста, помогите мне

это прекрасный надоедливый пример:

( using pygame here but not important )

def GoWindow(w):
     global screen, a, a_max, barPos, barSize, borderColor, bgBar, background, bg_loaded, current_load, a_dif, a_db, a_da, bar_percent, White, Black, Grey, Blue, Dark_Blue, Red, Dark_Red, Green, Dark_Green, Font,... #and it's continue....
     if w == 'load' #rest of the fucntion

1 Ответ

0 голосов
/ 03 апреля 2019

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

x = 5

def print_x():
    print(x)

def assign_x():
    x = 10

def assign_global_x():
    global x
    x = 10

print_x()  # prints 5
assign_x()  # does nothing (only changes the local `x`)
print_x()  # prints 5 (the global `x` is still 5)
assign_global_x()  # assigns 10 to the global x
print_x()  # prints 10 now

т.е. выход

5
5
10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...