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)