Кажется, что-то происходит за кулисами с Линтером и несколькими моими уроками. У меня есть несколько классов со слишком многими (до 26 в одном случае) атрибутами экземпляра. Один я смог исправить, сгруппировав некоторые связанные атрибуты в новые классы. Тем не менее, этот метод не работает для меня на последнем классе. Все атрибуты на данный момент являются примитивами, и я могу легко разбить их на связанные группы. Оскорбляющий класс следует:
class BigClass():
"""
This class has too many (16/8) instance attributes!
"""
a = float(0)
b = float(0)
c = float(0)
d = float(0)
e = float(0)
f = float(0)
g = float(0)
h = float(0)
i = float(0)
j = float(0)
k = float(0)
l = float(0)
m = float(0)
n = float(0)
o = float(0)
p = float(0)
Затем я разбил его на два класса, сгруппировав соответствующие атрибуты.
class SmallClass1():
"""
This class is smaller, it has 8/8 attributes.
It is a logical grouping of 8 attributes that were
previously found in BigClass()
"""
a = float(0)
b = float(0)
c = float(0)
d = float(0)
e = float(0)
f = float(0)
g = float(0)
h = float(0)
class SmallClass2():
"""
This class is smaller, it has 8/8 attributes.
It is a logical grouping of 8 attributes that were
previously found in BigClass()
"""
i = float(0)
j = float(0)
k = float(0)
l = float(0)
m = float(0)
n = float(0)
o = float(0)
p = float(0)
class NewBigClass():
"""
This class still has too many (16/8) instance attributes!
"""
grouping1 = SmallClass1()
grouping2 = SmallClass2()
Однако линтер по-прежнему утверждает, что в объявлении NewBigClass () слишком много атрибутов.
Я что-то упускаю, возможно, основное понимание того, чего пытается избежать это предупреждение?
Я не уверен, почему мне удалось решить это для одного класса, но не для всех. Все они придерживаются одинакового расположения.
Я ценю любую помощь.