将 python 的 dict 功能扩展到用户创建的类
是否可以向用户创建的类添加字典功能?
IE:
class Foo(object):
def __init__(self, x, y):
self.x
self.y
def __dict__(self):
return {'x': self.x, 'y': self.y}
f = Foo()
dict(f) <-- throws TypeError: iteration over non-sequence
Is it possible to add dict functionality to user created classes?
ie:
class Foo(object):
def __init__(self, x, y):
self.x
self.y
def __dict__(self):
return {'x': self.x, 'y': self.y}
f = Foo()
dict(f) <-- throws TypeError: iteration over non-sequence
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
dict 构造函数需要映射或可迭代的键/值对作为参数,因此您的类需要实现映射协议或可迭代。
下面是如何使用后一种方法的示例:
示例用法:
不过,我不知道这有多有用。您可以只执行
以下操作,而无需在您的类上实现 __iter__() 。
The
dict
constructor expects either a mapping or an iterable of key/value pairs as a parameter, so your class needs to either implement the mapping protocol or be iterable.Here's an example how to got about the latter approach:
Example usage:
I don't know how useful this is, though. You could just do
which would work without implementing
__iter__()
on your class.