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

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

# оператор
print 1

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

# функция
print(1)
Newone
В одном из следующих упражнений они трактуют эту тему так:
“Methods that use dot notation only work with strings.”
Но все равно есть ощущение, что формулировка “method” не может быть применена одновременно к конструкциям вида название_метода(переменная) и переменная.название_метода().
Newone
ilnur
я всегда считал
Согласен, с оператором я погорячился. Правильнее в первоначальном вопросе использовать “конструкция”.
py.user.next
Newone
Правильно ли называть оба этих оператора методами? Есть ощущение, что второе - функция.
Эти понятия к питону не относятся. Это общие понятия для большинства языков.
wiki. метод
Newone
py.user.next
У меня, к сожалению, опыта маловато, сравнивать не с чем. Пожалуй, у меня даже понимания нет как правильно задать сейчас вопрос, но все таки попробую: правильно вас понимаю, что “method” не определяется какой-то синтактической конструкцией определенного вида, он может выглядеть по разному и надо просто запомнить что в этом языке “вот эти” конструкции являются методами ?
py.user.next
Newone
правильно вас понимаю, что “method” не определяется какой-то синтактической конструкцией определенного вида, он может выглядеть по разному и надо просто запомнить что в этом языке “вот эти” конструкции являются методами ?
Есть теория программирования, общая для всех языков программирования, и сами языки сделаны с использованием этой теории. А есть теория питона.
Понятие метода есть и в теории программирования, и в теории питона.
Понятие функции есть и в теории программирования, и в теории питона.

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

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

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

Функция сначала определяется, потом вызывается. Вот метод - это такая функция. Поэтому сначала изучи функции, иначе не поймёшь, что такое метод.
Newone
Понятно. Спасибо за ответ.
Iskatel
Да во всех языках где есть ООП все одно и тоже….

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

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

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

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

Как то так…

ЗЫ. есть классная книжка (правда по электронике) где я никак не мог въехать что такое “сзади сверху”, часто в ней встречающееся. Доперло что это обычный Backup, или в переводе “запасной”. У переводчика скиллов не хватило
Shaman
Iskatel
А ели не ООП, а функциональное программирование, то методы называют просто функцией а не методом., свойства - просто переменные, а события называют прерываниями…
Видимо, речь идёт о модульном программировании, а не функциональном.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB