Я делаю это в python3 обычно с внутренними классами
class SomeSerializer():
class __Paginator(Paginator):
page_size = 10
# defining it for e.g. Rest:
pagination_class = __Paginator
# you could also be accessing it to e.g. create an instance via method:
def get_paginator(self):
return self.__Paginator()
так как я использовал двойное подчеркивание, это смешивает идею "искажения" с внутренними классами, снаружи вы все равно можете получить доступ к внутреннему классу с помощью SomeSerializer._SomeSerializer__Paginator
, а также к подклассам, но SomeSerializer. может не быть вашим желанием, если вы хотите, чтобы он был немного более анонимным.
Однако я предлагаю использовать "частную" нотацию с одним подчеркиванием, если вам не нужно искажение.
В моем случае все, что мне нужно, это быстрый подкласс для установки некоторых атрибутов класса, за которым следует присвоение его атрибуту класса моего класса RestSerializer, поэтому двойное подчеркивание будет означать «не использовать его вообще» и может измениться на подчеркивание, если я начну использовать его в другом месте.