gpt4 book ai didi

Python 为自定义类定义 []、len()、items() 和 keys() 运算符

转载 作者:行者123 更新时间:2023-12-05 03:02:17 26 4
gpt4 key购买 nike

我有一些代码来定义一个主要实体是字典的类。例如:

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])

我应该如何定义成员函数,以便我可以使用 []len()keys()items() 类实例 my_dict 上的运算符就好像它是一本字典?

最佳答案

#!/usr/bin/env python

class MyDictionary:
def __init__(self, my_dict):
self.my_dict = my_dict

def __getitem__(self, item):
return self.my_dict[item]

def __len__(self):
return len(self.my_dict)

def items(self):
return self.my_dict.items()

def keys(self):
return self.my_dict.keys()

def values(self):
return self.my_dict.values()


if __name__ == '__main__':
d = {'a': 1,'b': 2,'c': 3}
di = MyDictionary(d)

print(di.__len__())
print(di.items())
print(di.keys())
print(di.values())
print(di.__getitem__('b'))

输出:

3
dict_items([('a', 1), ('b', 2), ('c', 3)])
dict_keys(['a', 'b', 'c'])
dict_values([1, 2, 3])
2

关于Python 为自定义类定义 []、len()、items() 和 keys() 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55023740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com