我有一堆类,每个类都有一个参数指向__init__
,然后返回一些数据,例如
class Animal(object):
def __init__(self, name):
if name == 'lion':
self.sound = 'roar'
elif name == 'human':
self.sound = 'burp'
else:
raise ValueError('Unknown animal')
class Passenger(object):
def __init__(self, index):
self.sound = 'I\'m passenger number %d.' % index
其中一些类本质上是列表或字典(如Animal
),一些是“开放式”(如Prime
)。实例化任何一个类之后,它们都会在其他地方使用,因此您可以用相同的方式(Something(arg)
)实例化它们。你知道吗
但是,作为一个用户,如果不看代码,我就不知道哪些键是有效的。像这样的
animals = {
'lion': {'sound': 'roar'},
'human': {'sound': 'burp'},
}
可以解决这个问题,但是Passenger
不适合这里。你知道吗
有适合这两种情况的设计模式吗?你知道吗
这样,乘客和狮子都将“知道”方法
some_thing_all_animals_do
,并在初始化时取一个名称。你可以修改它来为你需要的动物做任何你需要的事情,这使得它比在同一个类中使用条件句更容易和直观。你知道吗相关问题 更多 >
编程相关推荐