gpt4 book ai didi

python - 在 Python 中为实例动态添加属性

转载 作者:太空狗 更新时间:2023-10-30 01:59:54 26 4
gpt4 key购买 nike

<分区>

我基本上已经对字典列表进行了精心设计的包装:

class Wrapper(object):
def __init__(self, data):
self.data = data

def get(self, attr):
return [d[attr] for d in self.data]

所以,

Wrapper([{'x': 23}, {'x': 42}, {'x': 5}]).get('x')

返回 [23, 42, 5] .现在我想分配速记属性,以便 Wrapper.x将返回与 Wrapper.get('x') 相同的结果.我不知道 data 中有哪些键先验的,所以我目前的方法是(改编自 this question :

class Wrapper(object):
def __init__(self, data):
self.data = data
for key in data[0].keys():
setattr(self, key, property(lambda self: self.get(key)))

因此,假设数据的所有元素都具有相同的键,并且它们都是 python 中的有效标识符。但是,Wrapper(...).x返回 <property at 0x10a3d4838>我做错了什么?

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