类Human
继承自Python内置的“dict”类。作为一个论点,它需要一本词典。.getCars()
方法返回存储在“car”或“cars”字典键中的值。对于键“car”,返回值是一个字符串。对于键“cars”,值是一个字符串列表。因此.getCars()
方法将返回两种类型的值:字符串或列表。
不用说,处理getCars()
方法会变得非常乏味,真的很快。我会一直检查它这次返回的内容:列表还是字符串。。。这将导致以后出现大量if/else语句。我的问题是:在这种情况下应该采取什么样的设计/方法?我是否应该强制执行相同类型的返回值(假设不管只有car还是many-.getCars()
总是返回一个列表)。虽然这种方法会导致一致的返回值类型,但以后可能会产生问题。因为把一辆车打包成一个列表变量,我就不得不做if returned_list: real_return_value=returned_list[0]
,这也有点多余。在
class Human(dict):
def __init__(self, *args, **kwargs):
super(Human, self).__init__(*args, **kwargs)
def getCars(self):
if 'cars' in self: return self.get('cars')
elif 'car' in self: return self.get('car')
cars={'cars':['BMW','Porsche','Mercedes-Benz']}
car={'car':'Geo Metro'}
wealthy=Human(cars)
froogle=Human(car)
print wealthy.getCars()
print froogle.getCars()
除了规范化用于查找数据的键之外,我建议规范化返回类型。也就是说,总是返回一个汽车列表,即使键
"car"
下只有一个。我认为没有比这更优雅的解决方案了:如果一个人没有车的话,返回空名单的另一种方法可能是提出一个例外。在
相关问题 更多 >
编程相关推荐