我有一个自定义 python 类(从现实世界的示例中抽象出来),我想通过键(名称)检索列表中的特定记录。我是第一次尝试很多新的 Python 功能,所以如果我在做一些愚蠢的事情,请多多包涵。
class Person():
def __init__(self, name)
self.name = name
class Hobbies():
def __init__(self):
self.items=[]
def __len__(self):
return len(self.items)
def __getitems__(self, key):
return next((item for item in self.items if item['hobby'] == key), None)
def add_hobby(self, hobby):
self.items.append(hobby)
class Hobby():
def __init__(self, hobby):
self.hobby = hobby
def __get_item__(self, key):
pp = pprint.PrettyPrinter()
return pp.pformat(self.__dict__)
person = Person("James")
hobbies = person.Hobbies()
hobby = Hobby({'hobby1': [{'name':'walking', 'regularity':'Daily', 'type':'physical'}, {'hobby2':['name':'reading', 'regularity':'Weekly', 'type':'mental']}})
hobbies.add_hobby(hobby)
首先,我会为我选择的例子道歉,它没有什么意义,但确实传达了我正在处理的结构,我复制了这段代码,但没有在没有安装 python 的机器上运行它:(
我好像看不出来怎么能通过key得到特定的爱好记录
我已经尝试了很多事情并不断得到“无”返回,所以我的列表理解显然是错误的(或者我对结构的理解)
我想为任何项目打印字典对象,例如:
打印(爱好['步行'])
或
打印(爱好['hobby1'])
如有任何帮助,我们将不胜感激!