2
我想用戶創建在一個循環中的不同實例中定義的串聯串的使用字典
user_input = ('cat', 'cactus', 'cat')
其對應於一系列對象的從可能的對象的字典被實例化
classes = {
'cat': Cat,
'cactus': Cactus,
}
凡Cat
和Cactus
對應於類,其從父類下降
class Pet():
...
class Cat(Pet):
def __init__(self, name, colour):
Pet.__init__(self, name, colour)
...
class Cactus(Pet):
def __init__(self, name, colour):
Pet.__init__(self, name, colour)
...
我嘗試的對象類型添加到列表中
pet_types = []
for i in range(0,3):
try:
pet_type.append(classes[user_input[i]])
except:
raise Exception('type no exist')
但是,當我做到這一點,引發異常,告訴我「沒有輸入存在」當字符串完全對應於字典條目!這是爲什麼發生?
然後我想用pet_types
這樣
pet_500 = pet_types[500](name,colour)
首先不使用毯子'try ... except'。什麼是*實際異常*被提出? –
注意:當你可以直接循環'user_input'時,不要遍歷'range()'。 –
我認爲你正在尋找一個工廠模式。 https://en.wikipedia.org/wiki/Factory_method_pattern –