организация определений - PullRequest
       3

организация определений

0 голосов
/ 28 января 2011

в python есть способ объявить def, не помещая его в класс.Итак, если мне просто нужно хранить много def в отдельном классе, я должен просто сделать это:

def first_method():
    pass

def second_method():
    pass

и не использовать @classmethod или @staticmethod?:

class methods():

    @classmethod
    def first_method(cls):
        pass

    @staticmethod
    def second_method():
        pass

если первый путь верен, как мне помечать приватный и публичный метод?

Ответы [ 2 ]

3 голосов
/ 28 января 2011

В Python нет таких вещей, как закрытые и открытые методы.По соглашению имена, начинающиеся с одного подчеркивания, считаются «частными», в том смысле, что пользователь не должен полагаться на свое существование.Кроме того, вы можете документ публичный интерфейс.Все остальное не должно иметь значения.

Множество функций, относящихся к слабому, было бы более питоническим решением, я бы сказал.

3 голосов
/ 28 января 2011

Да.Просто держите функции, которые не являются методами экземпляров, вне ваших классов.

Вы думаете, как в Java.Python не является Java.У Python нет настоящего способа иметь открытые и закрытые методы - вы можете изменить имена, чтобы указать, что вам нужна какая-то форма конфиденциальности (_ или __ в начале имени), но это не подлежит исполнению.

Я обнаружил, что за все время, что я программировал на Python, я никогда не хотел модификаторов доступа.

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