Нужны ли классы для создания методов (defs) в Python? - PullRequest
3 голосов
/ 04 мая 2010

Нужны ли классы для создания методов (defs) в Python?

Ответы [ 3 ]

12 голосов
/ 04 мая 2010

Нет. Однако def, которые не являются частью класса, обычно называются функциями, а не методами - но это одно и то же, за исключением того, что они не связаны с классом.

def myFunction(arg1, arg2):
    # do something here
2 голосов
/ 04 мая 2010

Нет, вы можете создавать функции, используя def, не заключая их в классы.

Если вы пришли из фона Java или C # - где требуется класс - вы можете прочитать более Введение в Python: функции или аналогичную статью, чтобы понять, как работать с функциями Python как язык предоставляет множество других функций, таких как функции первого класса, возвращение нескольких значений, анонимные функции и т. Д.

0 голосов
/ 04 мая 2010

Это зависит от вашего определения "метода".

В некотором смысле, нет, классы не нужны для создания методов в Python, потому что в любом случае нет методов в Python. Есть только процедуры (которые по непонятной причине называются functions в Python). Вы можете создать процедуру где угодно. метод - это просто синтаксический сахар для процедуры, присвоенной атрибуту.

В другом смысле, да, классы необходимы для создания методов. Это в значительной степени следует из определения того, что представляет собой метод в Python: процедура застряла в классе __dict__. (Тем не менее, обратите внимание, что это означает, что вам не обязательно находиться внутри класса определение для создания метода, вы можете создать процедуру где угодно и любым способом и потом вставить ее в класс.)

[Примечание: я немного упростил, когда речь идет о том, что именно метод, как они синтезируются, как они представлены и как вы можете создать свой собственный.]

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