Не могу понять как это работает

dodjj

Новичок
Пользователь
Янв 8, 2022
17
1
3
Нашел кусок кода не могу понять синтаксис и как это работает
Код:
def add(x, y):
    return x + ydef sub(x, y):
    return x - ydef mult(x, y):
    return x * ydef calculator(opcode):
    if opcode == 1:
       return add
    elif opcode == 2:
       return sub
    else:
       return mult my_calc = calculator(2) #MY CALC IS A SUBSTRACOTR
my_calc(5, 4) #RETURNS 5 - 4 = 1
my_calc = calculator(9) #MY CALC IS A MULTIPLLIER
my_calc(5, 4) #returns 5 x 4 = 20.
не пинайте а ,Гуру, растолкуйте как и что. Спасибо.
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Нашел кусок кода не могу понять синтаксис и как это работает
Код:
def add(x, y):
    return x + ydef sub(x, y):
    return x - ydef mult(x, y):
    return x * ydef calculator(opcode):
    if opcode == 1:
       return add
    elif opcode == 2:
       return sub
    else:
       return mult my_calc = calculator(2) #MY CALC IS A SUBSTRACOTR
my_calc(5, 4) #RETURNS 5 - 4 = 1
my_calc = calculator(9) #MY CALC IS A MULTIPLLIER
my_calc(5, 4) #returns 5 x 4 = 20.
не пинайте а ,Гуру, растолкуйте как и что. Спасибо.
Очень просто, никак...
Они забили расставить переносы строк, должно быть так:
Python:
def add(x, y):
    return x + y

def sub(x, y):
    return x - y

def mult(x, y):
    return x * y

def calculator(opcode):
    if opcode == 1:
       return add
    elif opcode == 2:
       return sub
    else:
       return mult my_calc = calculator(2) #MY CALC IS A SUBSTRACOTR

my_calc(5, 4) #RETURNS 5 - 4 = 1
my_calc = calculator(9) #MY CALC IS A MULTIPLLIER
my_calc(5, 4) #returns 5 x 4 = 20
Надо объяснить как это работает?
 

Форум IT Специалистов