Возможно ли присвоить значение, которое мы возвращаем с помощью «return» в функции, значению без вызова самой функции?

#python-3.x

#python-3.x

Вопрос:

 def define():
    a = input("Language:")
    b = input("Version:")

    return a,b

def print_language():
    f = define()
    print(f[0],f[1])

define()
print_language()


Language:Python
Version:3.8
Language:Python
Version:3.8
Python 3.8
  

Результатом этого является то, что он вызывает функцию дважды, как это. Я знаю решение этого, только для вызова 2-й функции, но мой вопрос:

Возможно ли присвоить значения, которые мы получаем из первой функции с помощью «return», переменной, не вызывая саму первую функцию, а затем, например, когда мы отправляем значение в первую функцию, можем ли мы вызвать его и использовать, не повторяя его во второй раз?

Комментарии:

1. Попробуйте передать его в print_language() , например def print_language(f): , затем вы можете вызвать print_language(define())

2. да, просто сохраните язык и версию как глобальные переменные

3. @Sadap, я лично не рекомендовал бы глобальные переменные, просто передайте результаты. К глобальным переменным обычно относятся неодобрительно, как к признаку недостаточно продуманной программы.

4. @AChampion, не сработало. та же проблема продолжается

5. def define(): a = input(«Язык:») b = input(«Версия:») def print_language(f): print(f[0],f[1]) define() print_language(define())

Ответ №1:

Вам нужно передать результаты define() в print_language() , например:

 def print_language(f):
    print(f[0],f[1])

result = define()
print_language(result)
  

Или это может быть свернуто до:

 print_language(define())