Python Как достать название переменной переданной в аргументы функции

def sample(objectName):
    # variable_name==objectName
    variable_name = [k for k, b in locals().items() if b == []][0]
    return variable_name
name=[]
print(sample(name))#output = objectName, а мне нужно чтоб name

Есть какие-то способы?


Ответы (2 шт):

Автор решения: Kers

Имена переменных функции Вам могут быть нужны если вы передаете именованный параметр:

def fun(name):
    print(name)

s = "Hello"
fun(s) # Как позиционный
fun(name = s) # как именованный

# относительно списка
l = ["a", "b", "c"]

for i in l:
    fun(i)

Как понимаю name это то что вы хотите узнать? В функцию вы передаете не имя переменно а как бы ее содержимое которое в пределах функции может именоваться совсем иначе.

→ Ссылка
Автор решения: asanisimov
def sample(**kwargs):
    variable_name = [k for k, v in kwargs.items() if v == []][0]
    return variable_name


print(sample(name=[]))

→ Ссылка