В Python я могу объявлять атрибуты по всему классу. Например:
class Foo:
def __init__(self):
self.a = 0
def foo(self):
self.b = 0
Трудно получить все атрибуты в моем классе, когда у меня большой класс с большим количеством атрибутов.
Лучше иметь следующий код (а) или следующий следующий код (б):
a) Здесь трудно найти все атрибуты:
class Foo:
def __init__(self):
foo_1()
foo_2()
def foo_1(self):
self.a = 0
self.b = 0
def foo_2(self):
self.c = 0
b) Здесь легко найти все атрибуты, но красиво ли это?
class Foo:
def __init__(self):
(self.a, self.b) = foo_1()
self.c = foo_2()
def foo_1(self):
a = 0
b = 0
return (a, b)
def foo_2(self):
c = 0
return c
В двух словах, каковы ваши соглашения по объявлению ваших атрибутов в классе?
EDIT:
Конечно, это простой пример, и нет необходимости улучшать мой код здесь. Представьте себе сложный класс с множеством «маленьких методов» (чтобы разделить мой код, чтобы улучшить читаемость), вызываемых в _ init_ ().