Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 26, 2013 15:34:29

MetalHead
От: Ленгер
Зарегистрирован: 2013-12-17
Сообщения: 88
Репутация: +  1  -
Профиль   Отправить e-mail  

Функции в Python

Добрый день, товарищи! Всех с наступающим Возник весьма глупый вопрос(точнее мысля) как работают функции в python, объясните пожалуйста.
Пример 1. Функция в функции. Вот вызываю из одной функцию другую функцию. Выводит все нормально.

def hello () :
    print ("hello")
    hi ()
def hi () :
    print ("hi")
hello ()
hi ()
Пример 2. Происходит бесконечный вызов результата функции, если обратиться к другой функции, которая вызывет ту функцию, которая выше. Не могу понять почему так? Объясните не просвященному. Не являюсь гуру программером, чайник одним словом.
def hello () :
    print ("hello")
    hi ()
def hi () :
    print ("hi")
    hello ()
hello ()
hi ()

Офлайн

#2 Дек. 26, 2013 16:13:57

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Функции в Python

Функции вызывают друг друга по очереди. И так до бессконечности…

Офлайн

#3 Дек. 26, 2013 17:20:50

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Функции в Python

А что тут непонятного?
Посмотри на второй кусок - там чётко написано - def hello() - ищи на той стороне улицы (тобишь вызов hi), перешел на другую сторону - def hi() - а там тоже ищи на той стороне улицы (вызов hello), вот и бегает туда сюда, пока не будет сбит машиной



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#4 Дек. 26, 2013 17:36:37

Kustodiev_17
Зарегистрирован: 2013-12-25
Сообщения: 26
Репутация: +  1  -
Профиль   Отправить e-mail  

Функции в Python

С дорогой это красочно и трагично и живописно. Мне в контексте приветствий из программы вспомнился стишок:

Я ПРОДАВАТЬ НЕСЛА ТВОРОГ

(Из английской народной поэзии)
Перевёл Г. Недров

Я продавать несла творог.
Стоял денёк погожий.
И вдруг навстречу старичок,
На здешних непохожий.

Он мне дорогу уступил,
С поклоном шляпу снял,
И “здравствуйте”, и “здравствуйте”,
И “здравствуйте” сказал.

Ну не могла же я в ответ
Пройти и промолчать:
Он - “здравствуйте”,
Я - “здравствуйте”,
И “здравствуйте” опять.

Старик продрог, прокис творог,
Стояли мы дней пять.
И “здравствуйте”, и “здравствуйте”,
И “здравствуйте” опять.

Офлайн

#5 Дек. 26, 2013 18:02:22

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Функции в Python

интересно, что будет с тсом если он попытается понять как эти числа фибоначчи считаются

R = lambda f : ((lambda r : lambda a : f(r(r), a)) 
                (lambda r : lambda a : f(r(r), a)))
            
fib = R(lambda self, n : n if n < 2 else self(n-2) + self(n-1))
print(list(map(fib, range(10))))

Офлайн

#6 Дек. 26, 2013 18:03:42

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Функции в Python

Очень советую пройти по ссылке http://goo.gl/eOJTCY

Офлайн

#7 Дек. 26, 2013 18:07:38

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Функции в Python

sergeek
XГМ

Пиши уже на чистом хаскеле. Чего уже тащить эту хрень в питон ?

Отредактировано Singularity (Дек. 26, 2013 18:08:25)

Офлайн

#8 Дек. 26, 2013 18:23:26

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

Функции в Python

Singularity
Пиши уже на чистом хаскеле. Чего уже тащить эту хрень в питон ?
Почему хрень-то ? Мне просто интересно смотреть на функции по другим углом. И ничего я не тащу в питон

Офлайн

#9 Дек. 28, 2013 15:45:24

MetalHead
От: Ленгер
Зарегистрирован: 2013-12-17
Сообщения: 88
Репутация: +  1  -
Профиль   Отправить e-mail  

Функции в Python

Благодарю ребят, все понятно. И еще вопрос, должна ли каждая функция возвращать значение с помощью return?

Офлайн

#10 Дек. 28, 2013 16:01:09

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

Функции в Python

Она и так возвращает. Только если вы явно не указали что вернуть в return, то она возвращает значение None.

Отредактировано 4kpt_II (Дек. 28, 2013 16:01:37)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version