我知道Python
只会在dict
for...in...
语法中添加help(dict)
时返回密钥列表。
但是dict会发生什么?
当我们使用__next()__
时,我们无法在方法列表中看到dict
方法。因此,如果我想根据class MyDict(dict)
def __init__(self, *args, **kwargs):
super(MyDict, self).__init__(*args, **kwargs)
创建派生类:
for...in...
和使用d = Mydict({'a': 1, 'b': 2})
for value in d:
Actions action=new Actions(driver);
action.SendKeys(OpenQA.Selenium.Keys.Control + "]").Build().Perform();
我该怎么办?
答案 0 :(得分:0)
天真地,如果你想要的只是迭代MyClass
的实例来产生值而不是键,那么在MyClass
中定义:
def __iter__(self):
return self.itervalues()
在Python 3中:
def __iter__(self):
return iter(self.values())
但要注意!通过这样做,即使collections.MutableMapping
为True,您的班级也不再实施issubclass(MyClass, collections.MutableMapping)
的合同。如果这是你想要的行为,你可能会更好地离开而不是子类dict
,而是拥有类型dict
的属性来保存数据,并且只实现这些功能和你需要的运营商。