Вы можете использовать еще два подхода:
Декоратор класса.
def setup_class_members(prefix):
def decorator(cls):
setattr(cls, prefix+"_var1", "hello")
setattr(cls, prefix+"_var2", "goodbye")
return cls
return decorator
@setup_class_members("coffee")
class myclass(object):
# ... etc
Особенно, если вам нужно добавить атрибуты в различных комбинациях, подход декоратора хорош, потому что он не имеетлюбой эффект на наследование.
Если вы имеете дело с небольшим набором атрибутов, которые вы хотите комбинировать различными способами, вы можете использовать классы mixin.Класс mixin - это обычный класс, он просто предназначен для "смешивания" различных атрибутов с другим классом.
class coffee_mixin(object):
coffee_var1 = "hello"
coffee_var2 = "goodbye"
class tea_mixin(object):
tea_var1 = "good morning old bean"
tea_var2 = "pip pip cheerio"
class myclass(coffee_mixin, tea_mixin):
# ... etc