Получать лишь 1 значение при вызове функции

Допустим у нас есть функция возвращающая 2 значения.

def func():
    return 1, 2

#Тут все впорядке в каждой переменной свое значение которое возвращается.
num1, num2 = func()

#Тут же я хотел получить лишь 1 значение но получается список из 2-х.
num 1 = func()

Можно ли как-то в самой функции понять сколько переменных ей даются при вызове, я дурачек просто поменял уже почти во всем проекте, и будет проще что-то с функцией делать нежели менять вызовы во всех строка. Если это возможно коненчо.


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

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

Можно ли как-то в самой функции понять сколько переменных ей даются при вызове

Можно, но здесь вам это не поможет, потому что вы не передаёте аргументы функции.

Понять из функции, как будет использовано её возвращаемое значение, нельзя. Так что придётся менять вызовы, как уже указали в комментариях @entithat и @cauf:

def func():
    return 1, 2

num_1 = func()[0]
num_2, _ = func()

print(num_1)
print(num_2)

Если бы присваивание было к члену класса, то можно было бы сделать так:

class A:
    def __init__(self):
        self.num = 42
    def __setattr__(self, name, value):
        self.__dict__[name] = value[0] if type(value) is tuple else value

def func():
    return 1, 2

a = A()
print(a.num)

a.num = func()
print(a.num)
→ Ссылка