Python使用_new__创建一个字典,并为每个键添加一个属性
我正在构建一个python类,在这个类中,我使用方法“new”创建了一个词汇表。然后,我想定义一个方法来影响一些键的单位。下面是代码示例:Python使用_new__创建一个字典,并为每个键添加一个属性,python,Python,我正在构建一个python类,在这个类中,我使用方法“new”创建了一个词汇表。然后,我想定义一个方法来影响一些键的单位。下面是代码示例: class MyClass(object): def __new__(cls): dict = {key1:None, key2:None} return dict def unit(self, unit): self[KEY].unit = unit 其中,在单元法中,键应取字典中的任何键。你能帮我理解怎么编码吗 提前谢
class MyClass(object):
def __new__(cls):
dict = {key1:None, key2:None}
return dict
def unit(self, unit):
self[KEY].unit = unit
其中,在单元法中,键应取字典中的任何键。你能帮我理解怎么编码吗
提前谢谢,我不确定您为什么要使用
\uuuuu new\uuuu
而不是\uuuu init\uuuu
,但您可以通过执行以下操作简单地遍历字典中的所有键:
class dictionary_setter:
some_dic = {'key1':1, 'some_other_key':2, 'just another key':3}
def __init__(self,keys):
self.some_dic = {}
for k in keys:
self.some_dic[k]='some_value'
a_test_dic = dictionary_setter(['key1','key2'])
print(a_test_dic.some_dick['key1'])
将字符串转换为变量是另一个主题,但您可以通过点语法简单地引用字典条目。您很可能希望使用init函数。您试图解决的问题到底是什么?不要使用
\uuuu new\uu
方法。这几乎总是一个错误,在你的例子中肯定是这样。您应该是子类化dict
。还不清楚magicKEY
var的定义位置或定义方式。我建议您根据您的目标重新表述您的问题,而不是使用\uuuu new\uuuu()
方法让示例工作。我无法返回带有init的词典。我想做一些类似的事情:`from MyClass import*dict=MyClass()dict[“key1”].unit=“m/s”`您不必这样做。你只要查字典就行了。你是从C/Java过渡到python的吗?从fortran到pythonI更新了示例,展示了如何将字典附加到类的实例中。我同意这一点,但我仍然不能仅使用键将attirbute单元影响到“some_dic”。Cf.def unit(self,unit):self.some_dic[key]。unit=unit