Python 我的uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;I don’我没有按预期工作
当我运行此代码时,我得到:Python 我的uuu init_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;I don’我没有按预期工作,python,python-3.x,class,for-loop,Python,Python 3.x,Class,For Loop,当我运行此代码时,我得到: class DictionnaireOrdonne: """Classe permettant de créer un dictionnaire ordonné comme une liste, avec des indices""" def __init__(self, **keys_values): """classe prennent un nombre indéfinit de paramètr
class DictionnaireOrdonne:
"""Classe permettant de créer un dictionnaire ordonné comme une liste, avec des indices"""
def __init__(self, **keys_values):
"""classe prennent un nombre indéfinit de paramètres nommées"""
self.keys_values = keys_values
self._dictionnaire = self.keys_values
for keys in self.keys_values:
self.keys = keys
def __repr__(self):
"""Cette méthode est appelée quand on appelle l'objet"""
return str(self.keys_values)
def __getitem__(self, key):
"""Cette méthode spéciale est appelée quand on fait objet[index]
Elle redirige vers self._dictionnaire[index]"""
return self._dictionnaire[key]
def __setitem__(self, key, value):
"""Cette méthode est appelée quand on écrit objet[index] = valeur
On redirige vers self._dictionnaire[index] = valeur"""
self._dictionnaire[key] = value
test = DictionnaireOrdonne(one=1, two=2, three=3)
print(test.keys)
我只有三把钥匙中的一把,这是最后一把,我不知道为什么
但是,如果我将for循环修改为:
three
然后我得到:
for keys in self.keys_values:
print(keys)
我得到了想要的输出,但我不能使用它,因为它会自动打印而不需要我调用它
在我的第一个示例中,为什么我只得到一个键,如何使它在调用
test.keys
时得到三个键?在\uuu init\uuu
中更改下面的代码:
one
two
three
致:
仔细查看您试图让for循环执行的操作:
对于self.keys\u值中的键:
self.keys=键
您没有添加到列表或任何类似的内容,而是用keys\u values
中的最新对象替换keys
值
坦白地说,这里实际上根本不需要for循环。只需将self.keys
设置为self.keys\u值
,它就会按照您的意愿工作
编辑:
要将**键\u值
转换为键列表,请使用list()
self.keys=list(self.keys_values.keys())#将键转换为列表
#后来
打印(按键)#[“一”、“二”、“三”]
您没有添加到密钥列表;您只需使用当前密钥覆盖前面的每个密钥。也就是说,如果您将关键字参数存储在self.key\u values
中,那么将它们再次存储在self.dictionnaire
或冗余存储关键字没有什么价值。您好,谢谢。如果我将self.keys
设置为self.keys\u值
,然后调用test.keys
,我将在只需要密钥时同时获取密钥和值。我不能使用for循环或其他方法捕获我所有的键吗?哦,好吧,简单地说list(self.keys\u values.keys)
。它将把你所有的钥匙(一、二、三)都放在一个列表中。
for keys in self.keys_values:
self.keys = keys
self.keys = self.keys_values