[英]Object not accessible inside a function in Python
I am a beginner in python and I am facing an issue.我是 python 的初学者,我正面临一个问题。
Below is my code:下面是我的代码:
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()))
I am getting "AttributeError: 'dict' object has no attribute 'addvalue'".我收到“AttributeError:'dict' 对象没有属性'addvalue'”。
Please help me on the same.请帮助我。 Thanks in advance!!
提前致谢!!
If you are subclassing dict for a reason, just initialize it.如果您出于某种原因对 dict 进行子类化,只需初始化它。
And for adding values you can try __setitem__
对于添加值,您可以尝试
__setitem__
class LocalQueryDictionary(dict):
def __init__(self):
super().__init__()
def addvalue(self, key, value):
self.__setitem__(key, value)
Then然后
a = LocalQueryDictionary()
a.addvalue('product', 'Lorem')
a.addvalue('state', 'NY')
print(a)
#=> {'product': 'Lorem', 'state': 'NY'}
The conventional name 'self' is a reference to the class.常规名称“self”是对类的引用。
If I understand your intention correctly, then what you probably want is this:-如果我正确理解您的意图,那么您可能想要的是:-
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.