扩展python';将dict功能添加到用户创建的类

扩展python';将dict功能添加到用户创建的类,python,dictionary,map,extend,Python,Dictionary,Map,Extend,是否可以将dict功能添加到用户创建的类中 即: 类Foo(对象): 定义初始化(self,x,y): self.x 赛尔夫 定义(自我): 返回{'x':self.x,'y':self.y} f=Foo() dict(f)构造函数要求将键/值对的映射或iterable作为参数,因此类需要实现映射协议或iterable 下面是一个关于后一种方法的示例: class Foo(object): def __init__(self, x, y): self.x = x

是否可以将dict功能添加到用户创建的类中

即:

类Foo(对象):
定义初始化(self,x,y):
self.x
赛尔夫
定义(自我):
返回{'x':self.x,'y':self.y}
f=Foo()

dict(f)构造函数要求将键/值对的映射或iterable作为参数,因此类需要实现映射协议或iterable

下面是一个关于后一种方法的示例:

class Foo(object):
    def __init__(self, x, y):
       self.x = x
       self.y = y
    def __iter__(self):
       return vars(self).iteritems()
用法示例:

>>> dict(Foo(2, 3))
{'x': 2, 'y': 3}
不过,我不知道这有多有用。你可以这么做

>>> vars(Foo(2, 3))
{'x': 2, 'y': 3}

如果不在类上实现
\uuuu iter\uuuu()
,它就可以工作。

或者我可以直接调用vars(我的对象):)您只是想将它传递给dict(),还是希望它像字典一样工作,这样您就可以执行
f=Foo();打印f['x']
?两者都有可能。
>>> vars(Foo(2, 3))
{'x': 2, 'y': 3}