Python - автоматизация создания экземпляров классов

У меня есть десятки классов, построенных таким образом:

class playlist_type_1(radio):
    '''child class'''   
    def __init__(self,user, type):
        radio.__init__(self, user, type)


class playlist_type_2(radio):
    '''child class'''       
        def __init__(self,user,type):
            radio.__init__(self, user, type)

они наследуют от:

class radio(self, user, type):
   '''parent class'''

так как у меня будет много usersЯ пытаюсь построить модель для создания экземпляров, например, так:

thom = playlist_type1('Thom Yorke', 'playlist_type_1')

сам пользователь, thom, выберу его playlist_type_n в command line с помощью:

string = raw_input('Choose a playlist type> ')

и экземпляр будет создан и запущен:

thom = playlist_type1('Thom Yorke', string)

может ли это быть реализовано в рамках class scope?

1 ответ

Решение

Создайте сопоставление имен классам, а затем создайте экземпляр класса на основе этого:

class PlaylistType1(Radio):
    pass


class PlaylistType2(Radio):
    pass


playlist_types = {
    PlaylistType1.__name__: PlaylistType1,
    PlaylistType2.__name__: PlaylistType2,
}

...

playlist = playlist_types[chosen_type](user)
Другие вопросы по тегам