Как получить имя строки аргумента вызова функции внутри той же функции. Использование этого как «дополнительного параметPython

Программы на Python
Ответить
Anonymous
 Как получить имя строки аргумента вызова функции внутри той же функции. Использование этого как «дополнительного парамет

Сообщение Anonymous »

Наличие любой функции Python как:

Код: Выделить всё

def function1(param1, param2):
#...
return 0
Как можно получить имя строки параметра (имя переменной), используемое при вызове функции? в идеале получить эту информацию простым способом без необходимости импортировать дополнительные библиотеки/модули, чтобы сохранить процесс функции без существенной дополнительной нагрузки, сохраняя все как можно более эффективным. В идеале.
В следующем примере function1.__code__.co_varnames получает исходные имена параметров функции:

Код: Выделить всё

"param1, param2"
Но здесь пытаются получить не эту информацию. вместо этого необходимо получить следующую информацию:

Код: Выделить всё

"var1, var2"
Получение этого внутри той же функции.

Код: Выделить всё

def function1(param1, param2):
print(function1.__code__.co_varnames)

'''
...
if param2_name == X:
do something.
elif param2_name == Y:
do something else.
'''

return 0

var1 = 1
var2 = 2
var3 = function1(var1, var2)
Как видно из функции, цель получения имени аргумента внутри функции — использовать это строковое имя для принятия решений.
Кстати, да, это можно было бы сделать «просто» добавив дополнительный параметр, но причина всего этого именно в том, чтобы избежать добавления дополнительного параметра в функцию. Из-за требований, в этом случае дополнительный параметр не является решением.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/793 ... tion-using
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»