扩展python';将dict功能添加到用户创建的类
是否可以将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
类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}