a, b и c (и d, e , f ... так как только 3 атрибута перечислены в этом примере для целей простоты, что, вероятно, говорит, что подход неверен, если класс нуждается в том, что многие атрибуты) являются разными атрибутами, но имеют некоторые сходства, что, вероятно, означает, что их разделение на других Классы были бы лучшим выбором. Или другой подход (например, группировка аналогичных атрибутов в отдельных классах) будет лучше? Как это выглядело, если, скажем, B и C являются тем же «видом» атрибута? (например, B является входным путем, а C - выходной путь). < /p>
Несколько декораторов и сеттеров свойств: < /p>
Код: Выделить всё
class A: # Too many properties and setters?
def __init__(self, a, b, c):
self._a = a
self._b = b
self._c = c
@property
def a(self):
return self._a
@a.setter
def a(self, value):
self._a = a
@property
def b(self):
return self._b
@b.setter
def b(self, value):
self._b = b
... # (same for c)
Код: Выделить всё
class A: # Name mangling issues?
def __init__(self, a, b, c):
self.__a = a
self.__b = b
self.__c = c
def set_a(self, a):
self.__a = a
def get_a(self):
return self.__a
def set_b(self, b):
self.__b = b
def get_b(self):
return self.__b
... # (same for c)
class A: # Less cluttered, but less intuitive that attributes are meant to be "private"?
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def __getattr__(self, name: str):
return self.__dict__[f"_{name}"]
def __setattr__(self, name, value):
self.__dict__[f"_{name}"] = value
< /code>
или дескриптор Python? (Как это было бы похоже, если бы B и C были перемещены в отдельный класс, поскольку они имеют сходство?).
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/794 ... descriptor