Уведомления

Группа в Telegram: @pythonsu

#1 Май 19, 2016 13:37:34

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

Приветствую. Только начал изучать. Прохожу самый нубокурс по Python на codecademy.com, столкнулся вот с такой неясностью. Прошу пояснить что есть функция, а что метод.
Упражнение №5 второй части, String methods
print len(parrot), где parrot - строковая переменная, в результате без ошибок считается длина, выводится число
Следующее успражнение, lower(), они его так же называют методом, я по аналогии написал lower(parrot), получил ошибку. Прочитал внимательно задание , правильное написание parrot.lower()
Правильно ли называть оба этих оператора методами? Есть ощущение, что второе - функция. Страница которую нагуглил намекает что это именно так, но если старшие товарищи натолкнут, буду благодарен.

Отредактировано Newone (Май 19, 2016 13:38:54)

Офлайн

#2 Май 19, 2016 14:17:02

ilnur
От: Казань
Зарегистрирован: 2009-01-06
Сообщения: 524
Репутация: +  22  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

я всегда считал

# оператор
print 1

# метод
'parrot'.lower()

# функция
print(1)

Офлайн

#3 Май 19, 2016 14:20:06

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

В одном из следующих упражнений они трактуют эту тему так:
“Methods that use dot notation only work with strings.”
Но все равно есть ощущение, что формулировка “method” не может быть применена одновременно к конструкциям вида название_метода(переменная) и переменная.название_метода().

Отредактировано Newone (Май 19, 2016 14:26:40)

Офлайн

#4 Май 19, 2016 14:25:02

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

ilnur
я всегда считал
Согласен, с оператором я погорячился. Правильнее в первоначальном вопросе использовать “конструкция”.

Офлайн

#5 Май 19, 2016 14:56:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

Newone
Правильно ли называть оба этих оператора методами? Есть ощущение, что второе - функция.
Эти понятия к питону не относятся. Это общие понятия для большинства языков.
wiki. метод



Офлайн

#6 Май 19, 2016 15:16:48

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

py.user.next
У меня, к сожалению, опыта маловато, сравнивать не с чем. Пожалуй, у меня даже понимания нет как правильно задать сейчас вопрос, но все таки попробую: правильно вас понимаю, что “method” не определяется какой-то синтактической конструкцией определенного вида, он может выглядеть по разному и надо просто запомнить что в этом языке “вот эти” конструкции являются методами ?

Офлайн

#7 Май 19, 2016 16:23:07

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

Newone
правильно вас понимаю, что “method” не определяется какой-то синтактической конструкцией определенного вида, он может выглядеть по разному и надо просто запомнить что в этом языке “вот эти” конструкции являются методами ?
Есть теория программирования, общая для всех языков программирования, и сами языки сделаны с использованием этой теории. А есть теория питона.
Понятие метода есть и в теории программирования, и в теории питона.
Понятие функции есть и в теории программирования, и в теории питона.

Вот функция в питоне (определение функции)
def f():
    return 1

Вот вызов функции в питоне
f()

Всё сразу записано (определение и вызов)
>>> def f():
...     return 1
... 
>>> f()
1
>>>

Функция сначала определяется, потом вызывается. Вот метод - это такая функция. Поэтому сначала изучи функции, иначе не поймёшь, что такое метод.



Офлайн

#8 Май 19, 2016 16:26:35

Newone
Зарегистрирован: 2016-01-10
Сообщения: 11
Репутация: +  0  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

Понятно. Спасибо за ответ.

Офлайн

#9 Май 22, 2016 16:01:16

Iskatel
Зарегистрирован: 2015-07-29
Сообщения: 291
Репутация: +  3  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

Да во всех языках где есть ООП все одно и тоже….

Вот предствь дверную ручку (нажимающуюся)

методы - нажать, отпустить, перекрасить и т.д.
свойства - красная, зеленая, холодная, грязная, нажата, отпущена и т.д.
события - нажали, отпустили, перекрасили, и т.д.

Тут ручка это объект, и к ней применимы понятия методов, свойств, событий.

А ели не ООП, а функциональное программирование, то методы называют просто функцией а не методом., свойства - просто переменные, а события называют прерываниями…

Как то так…

ЗЫ. есть классная книжка (правда по электронике) где я никак не мог въехать что такое “сзади сверху”, часто в ней встречающееся. Доперло что это обычный Backup, или в переводе “запасной”. У переводчика скиллов не хватило

Отредактировано Iskatel (Май 22, 2016 16:01:33)

Офлайн

#10 Май 22, 2016 17:15:47

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Codeacademy точен не всегда?

Iskatel
А ели не ООП, а функциональное программирование, то методы называют просто функцией а не методом., свойства - просто переменные, а события называют прерываниями…
Видимо, речь идёт о модульном программировании, а не функциональном.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version