Python - Как я могу сделать параметр функции глобальным? - PullRequest
0 голосов
/ 30 сентября 2018

Например, я хочу вызвать функцию LSE (n).И как только я вызываю LSE (5), я хочу, чтобы n был вызван другими функциями как 5. Я попытался вложить другие функции, обращающиеся к n внутри LSE, но он также не смог получить доступ к n.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

"Есть ли в любом случае глобальное действие без изменения имени? Т.е. я хочу взять свой параметр, чтобы сделать его глобальной переменной, сохраняющей то же имя (в отличие от того, где значение и n называются по-разному)"

from: Как получить исходное имя переменной, переданной в функцию

"Вы не можете. Она проверяется перед передачей в функцию. Все, что вы можете сделать, этопередайте его как строку. "

Что выполнимо, так это то, что вы можете заставить свой код всегда использовать определенное имя переменной, а внутри своей функции объявить ее глобальной переменной.Таким образом, вам даже не нужно будет передавать его как параметр, но это будет влиять на каждый раз, когда вы используете функцию;пример:

def test_function ():

    global N

    N = N + 1

    print (N)

N = 5

test_function()
test_function()
test_function()

6 7 8

0 голосов
/ 30 сентября 2018

Между функциями это можно сделать с помощью ключевого слова global.Этот подход обычно не одобряется.

n = 0
def LSE(value):
    global n
    n = value

def second_func():
   global n
   print(n)

пробует это:

>>> LSE(5)
>>> second_func()
5

Если вы хотите разделить значения между функциями, могу ли я предложить инкапсулировать их в класс?

...