gpt4 book ai didi

python - 像类一样初始化字典

转载 作者:太空宇宙 更新时间:2023-11-04 03:05:54 25 4
gpt4 key购买 nike

class fileInfo(dict):
def __init__(self, name, typ, size = 1):
self = {}
self["name"] = name
self["type"] = typ
self["size"] = size

def __getitem__(self, key):
if key == "name":
return dict.__getitem__(self, "name")+ "." + dict.__getitem__(self, "type")
return dict.__getitem__(self, key)

我已经创建了这个类,但是我在 init 函数方面遇到了问题。当我尝试初始化此类的对象时,init 函数返回一个空字典。

就初始化函数而言,我有什么不明白的地方?

最佳答案

这一行并不像你想象的那样:

    self = {}

该行创建了一个类型为 dict 的新对象,并将本地名称 self 绑定(bind)到它。这与 self 的先前值完全无关,后者已丢失。并且,由于 self 是局部变量,因此当 __init__() 返回时,此行创建的对象将被标记为删除。

试试这个:

super(fileInfo, self).__init__()

这既不会创建也不会销毁任何对象,但会修改 self 引用的对象。

引用:

关于python - 像类一样初始化字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39498302/

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