Как получить имя строки аргумента вызова функции внутри той же функции. Использование этого как «дополнительного парамет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)
Как видно из функции, цель получения имени аргумента внутри функции — использовать это строковое имя для принятия решений.
Кстати, да, это можно было бы сделать «просто» добавив дополнительный параметр, но причина всего этого именно в том, чтобы избежать добавления дополнительного параметра в функцию. В связи с требованиями, в этом случае дополнительный параметр не является решением.
Спасибо
ОБНОВЛЕНИЕ 1:
Здесь мы пытаемся просто сохранить существующий синтаксис вызова функции, но в то же время дать функции возможность обнаруживать своего рода контекст, для обнаружения которого не был предназначен ее предыдущий код. Это основная причина, поскольку добавление дополнительного параметра для этой цели не будет решением, поскольку потребуется изменить текущий синтаксис вызова.
ОБНОВЛЕНИЕ 2: >
Я создал новую тему с более подробной информацией о других возможных решениях основной ситуации, когда функция может идентифицировать рабочий контекст без необходимости указывать этот контекст с помощью нового параметра:Как функция может идентифицировать тип рабочего контекста, не указывая его с помощью нового параметр, сохраняющий существующий синтаксис вызова функции

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

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

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

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

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

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