Python style вопрос.Переменная, содержащая classobj - хороший стиль?
Иногда я задаю классы переменных, так что я могу создать экземпляр их в другом месте, например:
class GuitarItem():
pass
class SuperClass():
def get_instance(self):
return self.Item()
class SubClass(SuperClass):
Item = GuitarItem
class SubClass2(SuperClass):
Item = PianoItem
Это хороший стиль? Я пропустил более идиоматический способ сделать это? Меня это беспокоит, потому что item
не заглавный (как переменная), поэтому он «выглядит» как вызов метода.
ОБНОВЛЕНИЕ: В соответствии с комментариями от Hyperboreus я капитализирую Item
, который выглядит более разумным для меня. В противном случае это кажется абсолютно прекрасным.
Каждый класс уже имеет имя (тот, с которым был объявлен, и который был передан 'type()'). Поэтому нет ничего плохого в том, чтобы давать им больше имен по мере необходимости. – Hyperboreus
@Hyperboreus, так что вышесказанное не выглядит странным для вас .. вы напишете его так же? – HorseloverFat
Я бы воспользовался переменной. Что-то вроде 'Thing = LinuxThing if os == 'linux' else NoLinuxThing', являясь классами' LinuxThing' и 'NoLinuxThing'. Но не спрашивайте меня о стиле. Я часто нахожусь здесь на SO, потому что я не придерживаюсь PEP-8. – Hyperboreus