Получение имени при объявляемой переменной

Я хочу передать имена переменных функции чтобы она возвращала необходимый кортеж значений зависящий от имен переменных, пример:

a, b, c = something() # (1, 'b', True)

Как я могу реализовать подобное поведение ?

Доп.:

В голове я представляю себе такую программу:

def something(*args_names):
    res = []
    for chr in args_names:
        if chr=='a': res.append(1)
        elif chr=='b': res.append('b')
        elif chr=='c': res.append(True)
        . . .
    return tuple(res)

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

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

Насколько мне известно, у Вас никак не получится так сделать. Это связанно с тем, что вашей функции никак не получить данные о том, в какие переменные она будет распакована. И это вполне логично, ведь функция не должна знать о том, что происходит извне(это нарушает принципы построения программы). Ваш код не должен строится на том, как названы переменные. Вам стоит продумать архитектуру программы получше.

→ Ссылка
Автор решения: SergFSM

с трудом представляю для чего это может быть нужно, но попробуйте сделать так:

def something(*args_names):
    res = []
    for i in args_names:
        if i is a: res.append(1)
        elif i is b: res.append('b')
        elif i is c: res.append(True)
        else: res.append('error')
    return tuple(res)

a,b,c,d = 1,2,3,4

something(a,b,c,d)  # (1, 'b', True, 'error')
→ Ссылка