【发布时间】:2019-07-28 03:44:42
【问题描述】:
我有一些代码来定义一个主要实体是字典的类。例如:
class MyDictionary:
def __init__(self):
self.__my_dict = {'a': 1,
'b': 2,
'c': 3}
def __getitem__(self, item):
return self.__my_dict[item]
def __len__(self):
return len(self.__my_dict)
def keys(self):
# ?
def items(self):
# ?
my_dict = MyDictionary
for key, value in my_dict.items():
print([key, value])
for key in my_dict.keys():
print(my_dict[key])
我应该如何定义成员函数,以便我可以在类实例 my_dict 上使用 []、len()、keys()、items() 运算符,就好像它是字典一样?
【问题讨论】:
-
我不明白这个问题。您清楚地知道如何定义必要的方法,看看您已经成功实现了
__getitem__和__len__。我看不出是什么阻止您以类似的方式实施keys和items? -
以下链接可能对您有所帮助:stackoverflow.com/questions/4014621/…
-
@Aran-Fey 你完全正确。事实上,我之前已经尝试过了。出于某种原因,当时它不起作用,但现在它起作用了。我要检查它是否适用于我的“更大”程序。
标签: python dictionary operator-overloading