繁体   English   中英

对象在 Python 中的函数内不可访问

[英]Object not accessible inside a function in Python

我是 python 的初学者,我正面临一个问题。

下面是我的代码:

class LocalQueryDictionary(dict):
    def __init__(self):
        self = dict()

    def addvalue(self, key, value):
        self[key] = value

#Global definition of the object, "local_query_dict"

local_query_dict = LocalQueryDictionary()

def save_local_query(query_name_input, query_val_input):

    local_query_dict.addvalue(str(query_name_input.get()), str(query_val_input.get()))
    localQuery_listbox.insert(END, str(query_name_input.get()))

我收到“AttributeError:'dict' 对象没有属性'addvalue'”。

请帮助我。 提前致谢!!

如果您出于某种原因对 dict 进行子类化,只需初始化它。

对于添加值,您可以尝试__setitem__

class LocalQueryDictionary(dict):
    def __init__(self):
        super().__init__()

    def addvalue(self, key, value):
        self.__setitem__(key, value)
    

然后

a = LocalQueryDictionary()
a.addvalue('product', 'Lorem')
a.addvalue('state', 'NY')
print(a)
#=> {'product': 'Lorem', 'state': 'NY'}

常规名称“self”是对类的引用。

如果我正确理解您的意图,那么您可能想要的是:-

class LocalQueryDictionary(dict):
    def __init__(self):
        pass

    def addvalue(self, key, value):
        self[key] = value


lqd = LocalQueryDictionary()
lqd.addvalue('k', 'v')
print(lqd)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM