Python методы на объекте - что лучше? - PullRequest
0 голосов
/ 09 марта 2010

Надеюсь, простой вопрос. Если у меня есть объект, и я хочу вызвать для него метод, который лучше подходит, A или B?

class foo(object):
    def bar():
        print 'bar'

# approach A
f = foo()
f.bar()

# approach B
foo().bar()

Ответы [ 3 ]

2 голосов
/ 09 марта 2010

Если ваше единственное намерение состоит в том, чтобы позвонить bar() на foo объекте, то все в порядке.

Но если вы действительно планируете что-то сделать с объектом позже, вы должны использовать A, так как B не оставляет вам никаких ссылок на созданный объект.

2 голосов
/ 09 марта 2010

А более читабельно.

Итак, А:)

1 голос
/ 09 марта 2010

Подход B не держит объект вокруг. Если метод bar () возвращает self, вы можете написать:

f = foo().bar()

Лично мне нравится метод А. Хотя я начал создавать сеттер-функции, которые возвращают себя, чтобы связать их вместе, как описано выше - я не думаю, что другие люди считают это питоническим.

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