我不明白什么时候应该在Python上使用字典而不是类。如果一个类可以做与词典相同的事情,那么我们为什么要使用词典呢?例如,下面两个代码段的作用相同:
使用类:
class PiggyBank:
def __init__(self, dollars, cents):
self.dollars = dollars
self.cents = cents
piggy1 = PiggyBank(2, 2)
print(piggy1.dollars) # 2
print(piggy1.__dict__) # {'dollars': 2, 'cents': 2}
使用字典:
def create_piggy(dollars, cents):
return {'dollars': dollars, 'cents': cents}
piggy2 = create_piggy(2, 2)
print(piggy2['dollars']) # 2
print(piggy2) # {'dollars': 2, 'cents': 2}
最后,我创建了两个具有相同信息的静态对象。我应该在什么时候使用类或函数来创建实例
如果字典满足您的用例,并且您没有被迫使用类,那么您可以使用字典。但若你们需要一些额外的类的好处(如下面),你们可以写的是类
当您可能需要类时的一些用例
当你在做一些动态的事情时,你通常会想使用字典——在编写代码时,你不知道所有的键或信息。还要注意,类有一些限制,比如不能将数字用作属性
作为一个经典示例(使用
collections.Counter
有更好的解决方案,但我们仍将保留它的教育价值),如果您有一个要计算的值列表,您可以使用字典高效地进行计算:字典是内置的容器,具有相当多的功能,可以在不增加us编码成本的情况下使用。因为它们是内置的,所以很多功能可能都得到了优化
相关问题 更多 >
编程相关推荐