Python | Можно ли задать переменную без её вызова

Могу ли я в Python создать переменную, скажем value_1 = input('Введите первое число: '), но сделать так, чтобы, она не вызывалась к примеру там где она прописана (в начале кода), а там где я её вызову. Если есть такая возможность подскажите, пожалуйста, как её реализовать. Вот код

dia = None

def question2():
    value_1 = input('Введите первое число: ')
    value_2 = input('Введите второе число: ')

def question1():
    dia = input("Выберите действие: 1 - сложить, 2 - вычесть, 3 - умножить, 4 -разделить,\
    5 - возвести в степень, 6 - вычесть остаток, 0 - отмена. ")
    if dia == '0':
        print("See you later!")
        

con = True

while con:
    question1()
    question2()
    break

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

Автор решения: CrazyElf
  • Вы можете описать функцию в начале кода, а вызвать её в произвольном месте программы после. Хоть в середине, хоть в конце. Сработает функция в момент вызова, а описание будет, например, в начале кода. Собственно, у вас так и сделано.
  • В вашем коде вы не видите содержание переменных, установленных функцией, потому что вы ничего не возвращаете из вызываемых функций. Возвращайте из функции нужные значения через return и присваивайте их переменным основной программы. И у вас всё будет.
  • Можно использовать также указание global и сделать ваши локальные переменные внутри функции глобальными, но этого делать строго не рекомендуется. Это часто приводит к путанице и непрозрачности кода. В нормальном коде все параметры функция должна получать на вход в явном виде и все нужные результаты своей работы также возвращать в явном виде через return. Такие функции легко тестировать и есть некоторая гарантия, что они не "сломают" вам состояние вашей программы когда вы этого не ожидаете.

Пример кода:

def question2():
    value_1 = input('Введите первое число: ')
    value_2 = input('Введите второе число: ')
    return value_1,value_2

...

val_1, val2 = question2()
→ Ссылка