Есть ли способ определить переменную, которая является параметром внутри функции в Python? - PullRequest
0 голосов
/ 16 июня 2019

Можно ли определить переменную, которая является параметром внутри функции? Я пытался сделать это:

def myfunc(variable):
    variable = 5


myfunc(x)
print(x)

Я ожидал увидеть число «5», напечатанное на моем экране, потому что я определяю x (то есть 5), а затем печатаю его. Но я получаю это NameError:

Traceback (most recent call last):
  File "C:\Users\yoelc\PycharmProjects\Test\app.py", line 4, in <module>
    myfunc(x)
NameError: name 'x' is not defined

Я знаю, что это можно сделать:

def myfunc():
    return 5


x = myfunc()
print(x)

Но это не то, что я пытаюсь сделать. Есть ли способ определить это?

1 Ответ

5 голосов
/ 16 июня 2019

Может быть, не совсем то, что вы хотите, но довольно похоже:

def myfunc(variable):
    globals()[variable] = 5
myfunc('x')
print(x)

При этом говорят, что это плохая идея, если вам действительно не нужно использовать метапрограммирование по какой-то причине

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