-
Добрый день
Есть вот такая задача:
(Упростил как мог, чтобы не отвлекаться от сути)
Нужно написать такой метод count_fields чтобыclass A(object):
FIELD = 10
def count_fields(self):
....
class B(A):
FIELD = 100
class C(B):
FIELD = 1000
class D(C):
FIELD = 10000
Такое вообще возможно?D().count_fields() == 11110
Спасибо -
Что вас смущает в приведенном куске кода? На первый взгляд все будет работать.
-
Ничего не смущает. Но работать не будет - метод count_fields не описан.
-
Смешно. Что же в таком случае должно происходить внутри count_fields?
-
А без "смешно" никак нельзя объяснить?
-
Лучше озвучьте первоначальную задачу. Судя по тому, что у вас метод объекта хочет считать что-то, никак не зависящее от состояния объекта, где-то в решении архитектурная ошибка.
-
Наверное, я не точно выразился.
В приведенном примере необходимо посчитать сумму FIELD всех предков объекта и FIELD его самого.
Хм.. пока я писал это, понял, что эта задача решается, если описывать сразу:
И этот подход хорошо подходит к моей первоначальной задаче - посчитать уровень заполненности профиля пользователя. (Да, необходима именно такая иерархия типов пользователей)class B(A):
FIELD = A.FIELD + 100
Вместо FIELD у меня словарь весов для каждого поля, т.е. фотография - 50, описание - 10 и тд.
В общем, всем спасибо )
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

